WKWebView を使用してネイティブ アプリに読み込む Web アプリケーションがあります。最初のナビゲーションはログイン画面で、ios バイオメトリクスでユーザーを認証する方法を探しています。あなたが私を助けることができるかどうか私に知らせてください.
質問する
323 次
1 に答える
0
WKWebView
のユーザー コンテンツ コントローラ
にメッセージ ハンドラを追加します。self.webView.configuration.userContentController.add(self, name: "AuthHandler")
のクラスself
をWKScriptMessageHandler
プロトコルに適合させて実装しfunc userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage)
ます。
Web アプリで、クリックするとメッセージ ハンドラーを呼び出すボタンを追加します。
<button id="authButton" onClick="callAuthHandler()"/>
func callAuthHandler(){
window.webkit.messageHandlers.AuthHandler.postMessage("authCallback");
}
func authCallback(status){
console.log(status);
}
ネイティブ コードでは、
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "AuthHandler",let callBack = message.body as?
String, LAContext().canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: nil){
LAContext().evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "To authenticate") { (success, error) in
self.webView.evaluateJavaScript(callBack+"(\(success))
}
}
}
于 2017-12-20T22:53:56.800 に答える