繁体   English   中英

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

[英]cordova-plugin-ionic-webview - Unable to save password in HTML form despite autocomplete attribute

我正在开发一个 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';

在 Android Cordova 中工作的 PoC:


gitlab 问题

无法从 webview 触发 iCloud 钥匙串提示。 cordova-plugin-ionic-webview在 iOS 上使用WKWebView class,它似乎不支持 iCloud 钥匙串。 它与您设置的自定义应用程序主机名无关。 正如共享 web 凭据的文档中提到的那样: “在 Safari 中登录网站时,用户经常将用户名和密码保存在他们的 iCloud 钥匙串中”

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

我尝试使用cordova-plugin-safariviewcontroller实现您的链接,并且 iCloud 钥匙串被正确触发。 The fact is that you will need to change some logic in your app, since going to the webview by using window.location.href=https://your.url will be working for Android only. 您将需要检测平台,然后正确重定向用户。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM