Closed xumingyi closed 6 years ago
应用需要在打开状态才接受到自定义消息,不明白你为什么在后台能收到这个事件。
注意自定义消息和推送是完全不同的东西,可以参考 https://docs.jiguang.cn/jpush/client/iOS/ios_sdk/ 这个链接 (自定义消息就是文档中的应用内消息)。
document.addEventListener("jpush.receiveMessage", function (event) { var message if(device.platform == "Android") { message = event.message; } else { message = event.content; } }, false) 我用的就是这个接口? ios和android不是通用的? 我是启动的backgroundmode所以才能在后台也收到回调的触发。然后在provider中添加了一个本地通知。android这个流能够走通, 但是ios的异常就很反常,后台收不到我也认了,呜呜,可能是backgroundmode不好用,前台收不到是为啥呢? 或者说你们是不建议使用自定义消息? 因为我们是自定义的消息体,根据消息内容自己去弹的通知。所以就使用了这个接口。
通过 registrationID 给 iOS 端发送自定义消息,如果前台还是收不到,可以到极光社区 将你发送失败的 msgId 和 appkey 给官方查查发送状态。
这个问题是我们服务器端推送的android是 receivedMessage, ios端给推得就是notification 所以ios用receivedMessage的监听收不到回调。
WARNING: 如果不按照这个表格,我们将无法帮助你,并将忽略你的问题。
你的运行环境
cordova -v
): 7.1.0cordova platform ls
): Installed platforms: android 6.3.0 browser 5.0.3 ios 4.5.4 Available platforms: blackberry10 ~3.8.0 (deprecated) osx ~4.0.1 ubuntu ~4.3.4 (deprecated) webos ~3.7.0 windows ~5.0.0 www ^3.12.0期望效果
期望ios程序在前台和后台都能收到jpush的自定义消息。
实际效果
jpush推送自定义消息 , 程序启动了后台模式android前后台都好用,ios程序在后台能收到推送消息,在前台就走不到回调的listener里, ios JPush的时候ios和android需要有什么不同的处理?用的这个插件, document.addEventListener("jpush.receiveMessage", this.jpushDefineEventListener, false);//接收自定义消息
重现步骤
背景
尝试关闭和打开后台模式。没有解决 this.backgroundMode.enable(); this.backgroundMode.disable();
Debug logs
包括 Android 或 iOS 的日志: