ios - 如何阻止来自 iOS 主屏幕 PWA 的第 3 方登录流程在 Safari 中打开?

标签 ios safari progressive-web-apps

我有一个使用 LinkedIn's OAuth API 处理用户登录的网络应用程序.该页面重定向到 LinkedIn 的域,然后在用户通过身份验证后返回到我的域。当我的应用程序在通过 Safari 添加到 iOS 主屏幕后运行时,LinkedIn 身份验证页面在 Safari 中打开,而不是在主屏幕应用程序中打开。

我认为这是因为 linkedin.com 超出了我应用程序网络 list 中的 scope 属性?

有没有人有解决方案来在主屏幕应用程序中保持这样的整个跨域登录流程?我也在尝试弄清楚这种行为是否符合规范的精神(或者这种行为是否未定义)。

在 Android 版 Chrome 的主屏幕应用程序中似乎优先包含跨域重定向:

https://bugs.chromium.org/p/chromium/issues/detail?id=771418
Standalone PWA breaks login

您可以通过在 fizzr.io 尝试登录 LinkedIn 来查看行为在 iOS 上将登录页面添加到主屏幕后。只需点击 LinkedIn 按钮即可在 Safari 中打开外部登录流程。

这是我的应用 list :

{
    "name": "fizzr.io",
    "short_name": "fizzr.io",
    "icons": [
        {
            "src": "app-icon-192.png",
            "sizes": "192x192",
            "type": "image/png"
        },
        {
            "src": "app-icon-512.png",
            "sizes": "512x512",
            "type": "image/png"
        }
    ],
    "theme_color": "#ffffff",
    "background_color": "#ffffff",
    "display": "standalone",
    "start_url": "/",
    "scope": "/"
}

最佳答案

我相信这在 iOS 12.2 Beta 1 上的 Safari 中已经修复: https://twitter.com/tomayac/status/1089819735292866560

关于ios - 如何阻止来自 iOS 主屏幕 PWA 的第 3 方登录流程在 Safari 中打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51022202/

相关文章:

microsoft-edge - 像在 Chrome 中一样在 Edge 中离线

java - 如何通过移动网络浏览器运行Android应用程序(渐进式应用程序)

native - 是否可以从 native 应用程序调用 PWA?

iphone - 为什么 UIKit 中有这么多方法将 View 连接到事件?

ios - 以 UIView 作为委托(delegate)和数据源的 UICollectionView

ruby-on-rails - Rails - 刷新或多次访问后 View 完全变白

javascript - Safari 不发送 `referer` header

ios - 将字符串 EST 时间转换为本地时间

iphone - 如何将对象移动到排列?

css - 当页面上的任何元素获得位置 :fixed; 时,Mac Safari 字体渲染变细