【问题标题】:Using TouchID on emulator在模拟器上使用 TouchID
【发布时间】:2025-12-04 00:25:01
【问题描述】:

我正在尝试在我的 Ionic 2 应用程序中使用 TouchID。我有一个 iphone 5c,所以无法在真机上测试。

我导入了包:

import { TouchID } from 'ionic-native';

然后,我测试了第一个功能(我已经在模拟器的硬件部分激活了touchID):

TouchID.isAvailable()
.then(
  res => console.log('TouchID is available!'),
  err => console.error('TouchID is not available', err)
);

一切正常。现在我想做的是测试这个功能:

TouchID.verifyFingerprint('Scan your fingerprint please')
.then(
  res => console.log('Ok', res),
  err => console.error('Error', err)
);

可以在模拟器上测试吗? 模拟器可以监听指纹动作吗?

【问题讨论】:

    标签: ios ionic2 emulation touch-id


    【解决方案1】:

    任何使用最新 Xcode(版本 12x)的人,都没有 Hardware 菜单,它已被“功能”取代。所以要注册 touch id,

    1. 打开模拟器
    2. 转到Features -> Touch Id -> Enrolled

    【讨论】:

      【解决方案2】:

      在新版本的 xCode 中:

      1. 启用通过点击模拟器顶部菜单-> 硬件-> Touch ID -> 注册来启用Touch ID
      2. 然后在模拟器顶部菜单中模拟触摸 -> 硬件 -> 触摸 ID -> 匹配/不匹配的触摸

      【讨论】:

        【解决方案3】:

        这是我的代码@josé-neto

        ngOnInit() {
              if(window["plugins"]){
                window["plugins"].touchid.isAvailable(
                  function() {
                      console.log("isAvailable ok !");
                      window["plugins"].touchid.verifyFingerprint(
                        'Scan your fingerprint please',
                        function(msg) {console.log('verifyFingerprint ok: ' + JSON.stringify(msg))}, 
                        function(msg) {console.log('verifyFingerprint not ok: ' + JSON.stringify(msg))} 
                      );
                  }, 
                  function(msg) {
                    console.log('isAvailable not ok: ' + JSON.stringify(msg))
                  }
                );
              }
              else{
                console.log('window["plugins"] not ok');
              }
          }
        

        在控制台显示“isAvailable ok !”然后执行函数 verifyFingerprint。 (它显示:verifyFingerprint not ok: null)。它不等待用户操作(指纹)

        【讨论】:

          【解决方案4】:

          是的,有可能!

          打开模拟器后,点击 Hardware -> Touch ID Enrolled 以激活 Touch ID

          Touch ID Enrolled

          要在硬件中测试 Touch ID -> 模拟手指触摸 -> 匹配或不匹配

          Simulate Finger Touch

          【讨论】:

          • 我的版本是:10.0 (SimulatorApp-726.7) 当你点击:Hardware > Touch ID > Matching Touch,没有任何反应
          • Touch ID 问题出现在模拟器的屏幕上?如果是,你能告诉我你用来查看是否匹配的代码吗?
          • 这里不能粘贴所有代码,我把它作为答案:)