cordova-plugin-ionic-webview - 尽管有自动完成属性,但无法以 HTML 形式保存密码

Ga *_*chi 6 phonegap-plugins cordova ionic-framework ionic-webview cordova-plugin-ionic-webview

我正在开发 Cordova(~PhoneGap,~Ionic)应用程序,我遵循Apple 指南,并将自动完成属性添加到我的 HTML 登录表单,以询问用户是否要在尝试注册时保存他们的凭据。

在 Android 上,会出现询问用户是否要正确存储其凭据的弹出窗口,我可以在下次尝试登录时选择我存储的凭据。但在 iOS 上并非如此

我想到的第一件事可能会阻止 webview 为 iOS 关联密码和域,因为我为后者使用了自定义域(例如 iosapp://)。

我无法更改正在使用的自定义域,有没有办法让它提示用户保存他们的凭据?


这个问题可以通过这种方式重现:

  1. 插件 cordova-plugin-ionic-webview 添加到 Cordova 应用程序 (cordova-ios 5.1.0)
  2. 添加<preference name="Hostname" value="somescheme" />到您的 config.xml 为您的应用程序指定一个自定义主机名(默认是 ionic://,我相信也会有同样的问题)
  3. onDeviceReady 重定向到我的 PoC(适用于所有其他浏览器):
  window.location.href = 'https://gabriele-sacchi.github.io/pocs/biometric';
Run Code Online (Sandbox Code Playgroud)

在 Android Cordova 中工作的 PoC:


gitlab 问题

sap*_*tte 1

无法从 Web 视图触发 iCloud 钥匙串提示。cordova -plugin-ionic-webview使用WKWebViewiOS 上的类,该类似乎不支持 iCloud 钥匙串。它与您设置的自定义应用程序主机名无关。正如共享网络凭证的文档中提到的:“用户在 Safari 中登录网站时通常会将用户名和密码保存在 iCloud 钥匙串中”

这就是为什么对于 iOS,我必须使用 safari 让我的用户从 Web 视图进行身份验证并允许他们保存密码。有一个很棒的 cordova 插件可以用 Safari 打开 webview ( cordova-plugin-safariviewcontroller )。如果您使用 Ionic,该插件还有 Ionic 本机支持:safari-view-controller

我尝试使用 实现您的链接cordova-plugin-safariviewcontroller,并且 iCloud 钥匙串已正确触发。事实上,您需要更改应用程序中的一些逻辑,因为通过使用访问 Web 视图window.location.href=https://your.url仅适用于 Android。您需要检测平台,然后正确重定向用户。

在此输入图像描述