2015-10-05 58 views
0

我正在研究混合应用替代方案。我正在研究的其中一项内容是使用原生应用,其中显示应用的内容为UIWebView。当用户按下一个登录按钮(这会触发一个JS调用)时,应用程序将接管此调用并询问用户是否要使用Touch ID登录。使用touchId的UIWebview原生应用

我已经在一些赌场应用程序(例如this one)中看到了这一点,我想知道这是如何工作的。

据我所知,与UIWebView截取JS行动和(如果Touch ID存储)本机应用程序将接管。如果没有存储Touch ID,它将继续进行JS调用。一旦成功,本地应用程序将接管并询问用户他/她是否想使用TouchID存储凭证;之后它将继续JS调用。网站没有变化是必要的。

不幸的是,我找不到有关如何工作的任何信息以及关于如何拦截javascript调用和“操纵”操作的任何代码示例。

更新 据我所知,我的问题可能有点太模糊,我已经更新了。

+1

我发现一个问题那样回答我的,所以我投与问候,收于:http://stackoverflow.com/questions/13254751/ios-uiwebviewdelegate-intercept-javascript-calls –

+1

令人钦佩的行为,投票结束自己的问题。我奖励,并投票结束......: - ) –

回答

0

我没有这个做自己,但我想解决这样说:

  1. 提供/显示您的登录屏幕为正常。
  2. 登录后,确定Touch ID是否可用。
  3. 如果Touch ID可用,询问用户是否想使用Touch ID。
  4. 如果用户回答“是”,则将凭证存储在Keychain以及标记(可能位于NSUserDefaults)中,以指示触摸ID已启用。
  5. 在随后的登录中,检查上面的Touch ID标志,如果是YES,则使用Local Authentication显示Touch ID提示。
  6. 如果本地认证成功,请使用先前存储的凭证进行登录。
+0

问题是,登录不是本机。它在网站上。 –

+0

在这种情况下,您必须拦截登录过程。根据实施方式的不同,这可能需要对网站进行更改。 –