iOS 极光问题
iOS 不点击通知栏,怎么获取消息内容?
Background Remote Notification消息详细解读
如果需要在不点击通知栏的情况下,可以获取到消息内容,可以推送Background Remote Notification117。
这类消息的规则是:
客户端需要处于Background 或 Suspended 状态,被杀死后无法调起该方法
如果是推送Silent Remote Notifications消息,不保证成功,在Apple那边有频率控制,具体情况不详。
该类消息被收到后,Background 方法就会被调用,获得信息内容。
点击了展示该消息的通知栏,会再次调用 Background 方法。
点击了图标 这个操作并不会 再次调用 Background 方法。
经官方@aoyy测试结果如下 :

粘贴的图像1066x717 178 KB
间接的方法:
同时推送通知+自定义消息
自定义消息前台接收,不展示
registrationID 详细解读
详细定义点我查看
可辨别 Android&iOS:从左数,第三位代表平台
0 代表 Android
1 代表 iOS
Android 不同的设备却获取到相同的registrationID(同一个设备卸载重装的registrationID是一样的)
设备的 IMEI 、 serial_number 是否相同
如果 serial_number 一样,当取到的mac地址又为空,那就有可能很多设备拿到相同regid值
*
解决办法:
将设备的 IMEI 弄成不一样的,如果你要弄一样的 IMEI ,那就必须要弄不一样的 serial_number
serial_number 是后续SDK版本新增的,使用新增这个判断前的SDK 必须 IMEI 唯一
重烧 IMEI ,刷机或者:
步骤一:把这个文件清掉:Environment.getExternalStorageDirectory().getPath() + "/data/.push_deviceid";
步骤二:同步清除掉setting里面的,方法如下:Settings.System.putString(context.getContentResolver(), “devcie_id_generated”, “”);
步骤三:还有把缓存也清理下。
然后再重装app
iOS 设备的registrationID发生变化,如果不使用idfa
iOS 9 之前一般是不会改变的
iOS 9 之后,由于 Apple 在 App 卸载重装后,会给一个新的 token,所以对应的 registrationID 也会改变。
长时间关闭推送后又打开,也可能导致 token 变化。
在客户端监听广播,或调用接口 获取到 RegistrationID,然后将其保存到己方服务器,以备使用!
推送时使用registrationID进行一对一推送
有「消息收不到」疑问时必须提供的信息
服务端调用API 给设备设置别名/标签需要传的值