13

我有一个响应式网站并启用了推送通知功能。在我的原生 android 应用程序中,如果我WebViewWebView. 显然WebView,该应用程序不支持相同的网络推送通知。我知道如何在应用程序中实现 GCM 或 FCM 以启用移动推送,但我想知道是否可以将网络推送通知与 android webview 合并,以便它可以在我的应用程序中工作,因为它在 chrome/firefox 等中工作.

我尝试了什么:在深入研究之后,我最终得出结论,由于 androidWebView不支持Push Api(在caniuse.comWebView的帮助下),因此目前无法将 Web 推送与移动推送结合使用。我对吗?或者是否有任何应用程序已经这样做了?有可能吗?

4

2 回答 2

1

哦,这当然是可能的!我使用人行横道轻松地从我的 webview 应用程序中的一个信号实现了推送 web 通知。

使用人行横道,将 Main 活动扩展到 XWalkactivity 将其放在创建上:

OneSignal.startInit(this)
                .inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
                .unsubscribeWhenNotificationsAreDisabled(true)
                .init();

是的,您将有网络推送通知工作!!!

于 2018-04-03T21:21:53.320 回答
-1

据我所知,仅使用 WebView 是不可能的

对我有用的解决方案是查找您要在 WebView 中显示的网站是否使用 WebSockets。如果是,则通知可能在相应的 WebSocket 通信中可用。工作流程如下:

  1. 确定网站上的 WebSocket。您可以使用 Firefox“检查代码”并在“网络”选项卡中仅过滤掉 WebSocket 条目。

  2. 您可以通过各种工具测试与 ws 的连接。Simple-WebSocket-Client for Firefox 或命令行工具。只需向您的 WebSocket ( ws://domain.example/ws) 提供 URI。

  3. 在您的应用程序中实现 WebSocket 客户端。关于如何做到这一点有不同的帖子。我已经使用这个库让它变得干净整洁。

  4. 现在您正在接收来自服务器的消息,例如通知。

  5. 解析它们并做任何你想做的事情。

于 2017-11-21T23:24:25.503 回答