1.问题描述:
如何批量推送push消息?
解决方案:
自行维护一个用户账号与PushToken的关系表,在用户登录的时候绑定获取的PushToken,用户退出的时候解除PushToken绑定。
服务端根据用户关系表,确定接收用户的PushToken进行批量推送。此时post请求体中只需包含用户PushToken,即可实现精准推送指定用户。
2.问题描述:
播放长语音通知扩展消息,后发现应用通知角标未发生变化。
解决方案:
请检查原始消息体是否包含角标信息,原因如下:RemoteNotificationExtensionAbility子进程存活的时间是10秒,需要在10秒内返回消息内容,否则Push Kit将默认展示原有的消息内容。语音时间过长导致播放超过10秒时,如果原始的消息体中不含角标消息,则返回的通知也不含角标信息。
3.问题描述:
同时收到多条扩展消息通知后,语音播放消息内容超过1分20秒终止怎么处理?
解决方案:
检查是否是确认音频播放完成后再在onReceiveMessage()中返回的通知消息,保证播放的时序。
4.问题描述:
token生成只跟设备相关还是与设备和用户账号都相关?
解决方案:
Push Token基于设备AAID生成,因此在应用卸载、恢复出厂设置、清除应用数据后会发生变化。 PushToken:确认应用已经成功获取并上传了PushToken。 PushToken标识了每台设备上每个应用,开发者调用getToken()接口向PushKit服务端请求PushToken,获取到之后使用PushToken来推送消息。 PushToken一般情况不会变化,仅下列场景Push Token会发生变化:
- 卸载应用后重新安装。
- 设备恢复出厂设置。
- 应用显式调用deleteToken()接口后重新调用getToken()接口。
- 应用显式调用deleteAAID()接口后重新调用getToken()接口。
- 将设备(仅涉及Wearable设备)拿到海外其他国家或者地区后,系统会更新设备的Token。更新后的Token通过pushService.on('tokenUpdate')接口的回调返回。
因此,建议在应用启动时调用getToken()接口,若设备的PushToken发生变化,及时上报到应用服务器更新PushToken。 示例代码参考:Push Token更新回调。