我正在开发 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';
Run Code Online (Sandbox Code Playgroud)
phonegap-plugins cordova ionic-framework ionic-webview cordova-plugin-ionic-webview
我正在为我的 Cordova 移动应用程序使用 iOS 14 设备/模拟器,该应用程序使用 cordova-plugin-ionic-webview 并启用 WkWebView 设置。
我在 config.xml 中设置了以下选项
<access origin="myapp://mobileapp" />
<allow-navigation href="myapp://mobileapp" />
Run Code Online (Sandbox Code Playgroud)
这使得我所有的 xhr 调用都有“ origin:myapp://mobileapp ”标头。我已经正确定义了所有 CORS 标头。
现在我的身份验证 XHR 调用有 2 个 API(a)身份验证和(b)逐步操作。API (b) 将使用 API (a) 设置的 HTTPOnly 安全 cookie 以便做出适当响应。
上述两个 API 都可以在 UIWebview、iOS 13.5、iOS 13.7 模拟器和设备上完美运行。但在 iOS 14、iOS 13.3 中失败。在分析时,我发现 API (a) 中发送的 cookie 未存储在 WkWebview 中,因此在调用 API (b) 时不会发送它们。所以第二个 API 无法完成。
我看到cookie 在首次执行时被忽略,跟踪预防和wkwebview 错误,但无法识别问题。
当我在应用程序内浏览器中与 WkWebview 一起使用 API 时,API 运行良好,但仅在主 cordova …