iOS 11.3 中 PWA 无推送通知限制的解决方法?

Posted

技术标签:

【中文标题】iOS 11.3 中 PWA 无推送通知限制的解决方法?【英文标题】:Workaround for the no push notifications limitation for PWA in iOS 11.3? 【发布时间】:2018-04-16 19:56:12 【问题描述】:

部分 PWA 支持已登陆 ios 11.3,但不幸的是,推送通知是不受支持的功能之一。

可以使用 Apache Cordova 将 PWA 包装到本机应用程序中并添加推送通知支持吗?该应用被 Apple 批准放置在其应用商店中的可能性有多大?

更新:我尝试了 React Native webview,但不幸的是我碰到了另一面墙。 Google OAuth 登录在 web 视图中不起作用。有什么解决方法吗?

更新 2: https://codeburst.io/webviews-and-social-authentication-with-react-native-cfecf96ac7d7 这将解决上面的障碍,但 WebView 很慢,而且 RN 的实现有问题。 WKWebKit 更好,但它与 Firebase Auth JS 存在兼容性问题,并且仍然不支持 service worker。

【问题讨论】:

通过 Cordova 将使其成为本机应用程序,对吗?不再将其称为 PWA。 它仍然通过 webview 由相同的 pwa 代码提供支持,代码更改最少 我现在正面临着这个问题。 iOS PWA 支持“半生不熟”让我想到了仅适用于 android 的 PWA,但适用于 iOS 的 Cordova 包装版本。 遇到了pwabuilder.com,但我没有尝试过。看起来很有希望 【参考方案1】:

我做了同样的事情,但将它嵌入到 React Native <WebView>

【讨论】:

@Henry Yep 我得到了<WebView> 的引用,每当收到通知时,我都会对其进行postMessage 您尝试过 Cordova 吗?有兴趣知道如果您只使用 <WebView>,您为什么选择 react native 而不是 Cordova。 github.com/CRAlpha/react-native-wkwebview这可能你也感兴趣? @Henry 科尔多瓦 webview 是一个超级 webview,它嵌入了很多额外的东西。我只需要一个简单的 webview 没有额外的东西。它的开销更少。所以我只是猜测更快。我过去也使用过 Cordova,但记得它很慢。 谢谢,我想我也会这样做。是直截了当吗?有什么要注意的吗?谢谢! 超级直超级简单。只需要设置 RN 环境。如果您使用的是 Windows 机器,则 RN 0.56.0 当前无法正常工作。他们将很快发布 RN 0.56.1。【参考方案2】:

我刚试过。我使用 quasar-framework 制作了一个带有网络推送的 PWA。它运行顺利,但我希望它在 play store 中,所以我使用了纯 webview 包装器。网络推送不适用于此。

所以在下一步中,我尝试使用phonegap-push-plugin 创建一个cordova 应用程序。这确实有效,但文件都在设备上,因此 PWA 的优势消失了。

下一步,我只是将启动 url 更改为指向 web 中的 PWA,但不知何故 phonegap-push-plugin 不再起作用。

【讨论】:

以上是关于iOS 11.3 中 PWA 无推送通知限制的解决方法?的主要内容,如果未能解决你的问题,请参考以下文章

用于 PWA 中推送通知的 iOS 原生应用程序包装器

PWA 的推送通知或 Web 推送通知

iOS 11.3 中不使用 PWA 图标

如何在 webview 应用程序中发送推送通知,其中通知在网站和 PWA 上进行

打开 PWA 时收到推送事件时不显示通知

ASP.Net MVC PWA 的推送通知