如何在 Cordova 到达并且应用程序关闭时处理推送通知
Posted
技术标签:
【中文标题】如何在 Cordova 到达并且应用程序关闭时处理推送通知【英文标题】:How to handle push notifications with Cordova as they arrive and the app is closed 【发布时间】:2015-04-07 10:43:55 【问题描述】:当通知到达并且应用程序当时关闭时,我可以以某种方式检测推送通知到达并使用cordova处理它吗?我正在使用cordova com.clone.phonegap.plugins.pushplugin
,但是当通知到达并且应用程序关闭时,我使用插件javascript代码注册的事件侦听器不是“活动的”,我无法检测到到达。是否有可能使用cordova以其他方式实现这一目标?
【问题讨论】:
请提及您正在使用的平台。 【参考方案1】:如果您要求的是 ios,那么没有。您的应用无法在后台处理用户通知。如果用户点击通知横幅,您的应用将打开,您将收到带有通知有效负载的回调,该有效负载可以转发到 JavaScript。
如果您想处理静默后台通知,则必须在本机中完成,因为 JavaScript 执行在后台 AFAIK 中暂停。你可以实现一个队列,它只存储一个后台通知,然后在应用返回到活动状态时将其分派给 JavaScript。
【讨论】:
【参考方案2】:使用官方PushPlugin。
在Android中,如果应用程序关闭,将在状态栏中创建通知,否则将有效负载传递给您的应用程序
【讨论】:
【参考方案3】:我不确定这个解决方案,但你试过这个吗:-
在didReceiveRemoteNotification
方法中添加这个
NSString* jsString = [NSString stringWithFormat:@"localStorage.NotificationId=%@;", dynamicNotificationId];
[self.viewController.webView stringByEvaluatingJavaScriptFromString:jsString];
【讨论】:
【参考方案4】:您可以在应用关闭时使用插件 phonegap-plugin-push > 1.6.2 触发 on("notification") 事件,并将后端响应更改为:
notification :
title : 'yourTitle',
message : 'yourMessage'
到
data :
title : 'yourTitle',
message : 'yourMessage',
content-available : "1" //only for IOS
【讨论】:
以上是关于如何在 Cordova 到达并且应用程序关闭时处理推送通知的主要内容,如果未能解决你的问题,请参考以下文章
Ionic / Cordova:如何强制应用程序在启动时刷新,即使它在后台?
在 cordova/phonegap Android 应用程序上关闭屏幕后媒体停止播放
Cordova POST - 请求禁止 403。未到达 Dispatcher Servlet