Flutter学习iOS 技巧

Flutter 学习 之 本地指纹/生物识别 local_aut

2022-04-29  本文已影响0人  半城半离人

本来想直接翻看看原生生物识别是怎么做的 百度了一下 flutter官方有提供轮子 本着 造不如买 的原则 就研究了一下发现它十三天前更新了2.0.0版本 那就来康康他的传新版本
老样子 官网再右侧 local_auth 2.0.0

一. 插件引入

dependencies:
  local_auth: ^2.0.0

二. 安卓端修改

2.1 注册清单中加入权限

  <uses-permission android:name="android.permission.USE_FINGERPRINT"/>
  你要用上面那个权限 它会提示说过时了 安卓P以上换了一个 反正我minSDK也在p以上就换成了它推荐的 毕竟听人劝吃饱饭
    <uses-permission android:name="android.permission.USE_BIOMETRIC" />

2.2 把继承的FlutterActivity 改成FlutterFragmentAcitvity

没什么好改的换了个导入包就可以了

public class MainActivity extends FlutterFragmentActivity {
    @Override
    public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine);
        // 引入你写的插件
        try {
            flutterEngine.getPlugins().add(new CustomChannelPlugin(this));
        } catch (Exception e) {
            Log.e(getLocalClassName(), "Error registering pluginCustomChannelPlugin,", e);
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}

三. IOS端修改

没有开发工具哈 文档说要改东西

<key>NSFaceIDUsageDescription</key>
<string>Why is my app authenticating using face id?</string>

四. dart的引用

bool supposed = await LocalAuthentication().isDeviceSupported();
bool supposed = await LocalAuthentication().canCheckBiometrics();
      availableBiometrics = await LocalAuthentication().getAvailableBiometrics();
    bool authenticated = await LocalAuthentication().authenticate(
///这个东西不是必须的 只是用来改文字用的..... 有中文的是我应该是能看到过的东西.....
        authMessages: [
          const AndroidAuthMessages(
            biometricHint: "生物识别提示",
            biometricNotRecognized: "biometricNotRecognized",
            biometricRequiredTitle: "弹出提示框的时候的提示",
            biometricSuccess: "biometricSuccess",
            cancelButton: "取消按钮的文字",
            deviceCredentialsRequiredTitle: "deviceCredentialsRequiredTitle",
            deviceCredentialsSetupDescription:
                "deviceCredentialsSetupDescription",
            goToSettingsButton: "去设置界面的按钮",
            goToSettingsDescription: "这里说的是你如果没有设置指纹那么你应该去设置里面去设置",
            //顶部提示 默认是英文说的是
            signInTitle: "您需要扫描指纹才能继续",
          )
        ],
        localizedReason: '我们需要验证您的指纹',
        options: const AuthenticationOptions(
          ///使用他们的错误处理
          useErrorDialogs: true,
          ///如果去后台在返回还能继续识别
          stickyAuth: true,
//解锁以后还能干什么东西来着
          sensitiveTransaction: true,
          //只用身份处理不能用密码
          biometricOnly: true,
        ),
      );

五. 他会抛出六种异常 需要自己去catch..

六. 我遇到的问题

手机有设置指纹的情况下打开识别界面弹出弹窗以后再删除指纹才能弹窗 不知道是不是机型原因...
界面不能自定义 他在原生部分写好的 你只能改提示文字
也可能是我研究不到家 有更新再补上去把......

上一篇下一篇

猜你喜欢

热点阅读