Как я могу использовать Аутентификацию с помощью Биометрии для аутентификации пользователя в веб-представлении?

У меня есть веб-приложение, которое я загружаю в нативное приложение с WKWebView. Первая навигация - экран входа в систему, и я ищу способ аутентификации пользователя с помощью биометрических показателей ios. Пожалуйста, дайте мне знать, если вы можете мне помочь.

1 ответ

Добавить обработчик сообщений в WKWebViewКонтроллер пользовательского контента.self.webView.configuration.userContentController.add(self, name: "AuthHandler")

Соответствовать классу self в WKScriptMessageHandler протокол и реализовать func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage),
В веб-приложении добавьте кнопку, которая будет вызывать обработчик сообщений при его нажатии:

<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))
      }
   }
}
Другие вопросы по тегам