我正在开发 Cordova(~PhoneGap、~Ionic)应用程序,我遵循 Apple 指南,并向我的 HTML 登录表单添加了自动完成属性,以询问用户在尝试注册时是否要保存凭据。
在 Android 上,会出现弹出窗口,询问用户是否要正确存储其凭据,并且我可以在下次尝试登录时选择我存储的凭据。但在 iOS 上情况并非如此。
我想到的第一件事可能会阻止 webview 将 iOS 的密码和域关联起来,因为我为后者使用了自定义域(例如 iosapp://)。
我无法更改正在使用的自定义域,有没有办法仍然让它提示用户保存其凭据?
这个问题可以通过以下方式重现:
<preference name="Hostname" value="somescheme" />
添加到您的 config.xml 中,为您的应用程序指定自定义主机名(默认主机名是 ionic://,我相信也会有同样的问题) window.location.href = 'https://gabriele-sacchi.github.io/pocs/biometric';
(gitlab问题)
无法从 Web 视图触发 iCloud 钥匙串提示。 cordova-plugin-ionic-webview 在 iOS 上使用
WKWebView
类,该类似乎不支持 iCloud 钥匙串。它与您设置的自定义应用程序主机名无关。正如共享网络凭据的文档中提到的:“用户在 Safari 中登录网站时经常将用户名和密码保存在 iCloud 钥匙串中”
这就是为什么对于 iOS,我必须使用 safari 让我的用户从 Web 视图进行身份验证并允许他们保存密码。有一个很棒的 cordova 插件可以用 Safari 打开 webview (cordova-plugin-safariviewcontroller)。如果您使用 Ionic,该插件也有 Ionic 本机支持:safari-view-controller
我尝试使用
cordova-plugin-safariviewcontroller
实现您的链接,并且 iCloud 钥匙串已正确触发。事实上,您需要更改应用程序中的一些逻辑,因为使用 window.location.href=https://your.url
进入 Web 视图仅适用于 Android。您需要检测平台,然后正确重定向用户。
我正在尝试在 Android/IOS cordova 应用程序上执行相同的功能。 我尝试按照Apple的指南创建表单,但没有成功。 有表格代码吗?