HarmonyOS鸿蒙Next中当用户从后台回到前台,怎么开启自己的指纹认证

HarmonyOS鸿蒙Next中当用户从后台回到前台,怎么开启自己的指纹认证 应用内有自己开发的指纹认证跟应用锁密码,当用户从后台返回到前台,怎么开启自己的指纹或者应用锁呢

5 回复

onForeground这个生命周期是当UIAbility实例从后台切到前台时,系统会调用此方法。此时,UIAbility实例开始重新渲染并恢复到前台状态,可以在EntryAbility的onForeground生命周期中通过eventHub发送事件,在对应的page中监听事件后调用认证的方法,实现从后台返回到前台后开启指纹认证的功能

参考demo如下:

//EntryAbility.ets

onForeground(): void {
    this.context.eventHub.emit('onForeground');
    // Ability has brought to foreground
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');
}

// Index.ets

import { BusinessError } from '@kit.BasicServicesKit';
import { cryptoFramework } from '@kit.CryptoArchitectureKit';
import { userAuth } from '@kit.UserAuthenticationKit';

startAuth() {
    console.log('startAuth');
    try {
      const rand = cryptoFramework.createRandom();
      const len: number = 16;
      const randData: Uint8Array = rand?.generateRandomSync(len)?.data;
      // 设置认证参数
      const authParam: userAuth.AuthParam = {
        challenge: randData,
        authType: [userAuth.UserAuthType.PIN, userAuth.UserAuthType.FACE],
        authTrustLevel: userAuth.AuthTrustLevel.ATL3,
      };
      // 配置认证界面
      const widgetParam: userAuth.WidgetParam = {
        title: '请进行身份认证',
      };
      // 获取认证对象
      const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
      console.info('get userAuth instance success');
      // 开始认证
      userAuthInstance.start();
      console.info('auth start success');
      // 取消认证
      userAuthInstance.cancel();
      console.info('auth cancel success');
    } catch (error) {
      const err: BusinessError = error as BusinessError;
      console.error(`auth catch error. Code is ${err?.code}, message is ${err?.message}`);
    }
}

aboutToAppear(): void {
    getContext().eventHub.on('onForeground', () => {
      console.log('index APP onforeground');
      this.startAuth();
    });
}

更多关于HarmonyOS鸿蒙Next中当用户从后台回到前台,怎么开启自己的指纹认证的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


如果指纹认证是个页面怎么让他弹出来呢

可以通过navagiton或者router的方式跳转到该页面。

在HarmonyOS鸿蒙Next中,当用户从后台回到前台时,可以通过Ability的生命周期回调方法来触发指纹认证。具体步骤如下:

  1. AbilityonForeground方法中,调用指纹认证的相关API。onForegroundAbility生命周期中的一个回调方法,当应用从后台回到前台时会触发。

  2. 使用FingerprintAuth类进行指纹认证。首先需要检查设备是否支持指纹认证,然后调用authenticate方法启动认证流程。

  3. 实现FingerprintAuthCallback接口来处理认证结果。在onAuthenticationSucceeded方法中处理认证成功的逻辑,在onAuthenticationFailed方法中处理认证失败的逻辑。

示例代码如下:

import { Ability } from '@ohos.application.Ability';
import { FingerprintAuth, FingerprintAuthCallback } from '@ohos.fingerprintAuth';

export default class MainAbility extends Ability {
    private fingerprintAuth: FingerprintAuth;

    onForeground() {
        this.fingerprintAuth = new FingerprintAuth();
        if (this.fingerprintAuth.isSupport()) {
            this.fingerprintAuth.authenticate(new MyFingerprintAuthCallback());
        }
    }
}

class MyFingerprintAuthCallback implements FingerprintAuthCallback {
    onAuthenticationSucceeded() {
        // 处理认证成功逻辑
    }

    onAuthenticationFailed() {
        // 处理认证失败逻辑
    }
}

通过上述步骤,可以在用户从后台回到前台时自动触发指纹认证。

在HarmonyOS鸿蒙Next中,若需在用户从后台返回前台时启动指纹认证,可通过监听onForeground生命周期回调来实现。在该回调中调用BiometricPrompt API,配置认证参数并启动指纹识别。认证成功后执行相应业务逻辑,失败则提示用户重试或采取其他安全措施。

回到顶部