Я не разработчик Android и застрял на Android. Я надеюсь, что кто-то здесь может мне помочь.
Я использую WebAuthn/FIDO2 на своем веб-сайте, который отлично работает с браузерами. Но когда я открываю свой веб-сайт в своем приложении для Android (android.webkit.webview), это дает мне ошибку
I/chromium: [INFO:CONSOLE(136)] "Got error-NotSupportedError: The user agent does not support public key credentials."
Пример кода, который я использую на своем веб-сайте, выглядит примерно так:
navigator.credentials.create({ publicKey })
При открытии https://webauthn.io/ в моем приложении пишет "этот браузер в настоящее время не поддерживается"
Нельзя ли как-нибудь обновить webView?
Я использую версию sdk (API 26, Android 8.0 или oreao)
Есть ли обходной путь?
Заранее спасибо!
Проще говоря: это не реализовано и не будет реализовано в Android Webview (источник) по соображениям безопасности.
Чтобы использовать WebAuthn из вашего приложения, вы должны перенаправить в браузер либо напрямую, либо с помощью SFSafariViewController (iOS) или настраиваемой вкладки Android (Android), как описано в RFC8252 — Приложение Б.
Хотя официально это не поддерживается, это можно сделать с помощью стороннего решения: https://hwsecurity.dev/guide/fido-webview/.
Они внедряют мост JavaScript, который перенаправляет вызовы navigator.credentials на их реализацию FIDO2. Отлично работает для меня.