HarmonyOS鸿蒙Next中指纹悬浮框实现

HarmonyOS鸿蒙Next中指纹悬浮框实现 进行指纹效验时弹出提示用的指纹悬浮框,应该怎么去实现,指纹效验框是第三方sdk自带的,指纹悬浮框鸿蒙实现

3 回复

指纹悬浮框实现请参考下方案例:

前提条件:确保样机已经录入指纹,并开启指纹解锁

import userIAM_userAuth from '@ohos.userIAM.userAuth';

const authParam : userIAM_userAuth.AuthParam = {
  challenge: new Uint8Array([1, 1, 1, 1, 1, 1]),
  authType: [userIAM_userAuth.UserAuthType.FINGERPRINT],
  authTrustLevel: userIAM_userAuth.AuthTrustLevel.ATL1,
};
const widgetParam : userIAM_userAuth.WidgetParam = {
  title: '请使用指纹解锁',
};

@Component
struct AuthTestExample {
  build() {
    Column() {
      Button('AuthTest')
        .onClick(() => {
          try {
            //获取认证对象
            let userAuthInstance = userIAM_userAuth.getUserAuthInstance(authParam, widgetParam);
            console.log('get userAuth instance success');
            //订阅认证结果
            userAuthInstance.on('result', {
              onResult (result) {
                console.log('userAuthInstance callback result = ' + JSON.stringify(result));
                if (result.result == userIAM_userAuth.UserAuthResultCode.SUCCESS) {
                  console.log('userAuthInstance success');
                }
              }
            });
            console.log('auth on success');
            userAuthInstance.start();
            console.log('auth start success');
          } catch (error) {
            console.log('auth catch error: ' + JSON.stringify(error));
          }
        })
        .fontSize(30)
        .height(50)
    }.height('100%').width('100%').justifyContent(FlexAlign.Center)
  }
}
{
  "module": {
    ......
    "requestPermissions": [
      {
        "name": "ohos.permission.ACCESS_BIOMETRIC",
      }
    ]
  }
}

更多关于HarmonyOS鸿蒙Next中指纹悬浮框实现的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,指纹悬浮框的实现主要依赖于FingerprintManagerWindowManager两个核心类。FingerprintManager用于管理指纹识别功能,而WindowManager则用于控制悬浮框的显示和布局。

首先,通过FingerprintManager监听指纹识别事件。当用户进行指纹识别时,系统会触发相应的回调方法,开发者可以在这些回调方法中处理指纹识别的结果。例如,当指纹识别成功时,可以显示一个悬浮框提示用户。

其次,使用WindowManager创建和管理悬浮框。通过WindowManageraddView方法,可以将自定义的悬浮框布局添加到屏幕上。悬浮框的布局可以通过XML文件定义,或者通过代码动态创建。悬浮框的位置和大小可以通过WindowManager.LayoutParams进行设置。

在实现悬浮框显示时,需要注意权限问题。鸿蒙系统要求应用在显示悬浮框之前必须获取SYSTEM_ALERT_WINDOW权限。开发者需要在应用的config.json文件中声明该权限,并在运行时动态请求用户授权。

最后,为了确保悬浮框的显示和隐藏与指纹识别事件同步,开发者需要在FingerprintManager的回调方法中调用WindowManager的相关方法,以控制悬浮框的显示和隐藏。

总结来说,HarmonyOS鸿蒙Next中指纹悬浮框的实现主要依赖于FingerprintManagerWindowManager,通过监听指纹识别事件并动态管理悬浮框的显示和布局来实现功能。

在HarmonyOS鸿蒙Next中,实现指纹悬浮框可以通过以下步骤:

  1. 创建悬浮窗权限:首先在config.json中申请悬浮窗权限。
  2. 绘制指纹图标:使用CanvasImage组件绘制指纹图标。
  3. 悬浮窗管理:通过WindowManager创建并管理悬浮窗,设置其大小、位置和透明度。
  4. 事件监听:监听触摸事件,处理指纹图标的点击和拖动操作。
  5. 指纹验证:调用BiometricPrompt API进行指纹验证,处理验证结果。
回到顶部