您的位置:首页 > 移动开发 > IOS开发

iOS push过程中常见的问题

2016-08-16 22:02 330 查看
iOS中消息推送走的是苹果的APNS,关于其工作原理网上一搜一大把,大家可自行从网上搜索.

DeviceToken在使用过程中的注意点:在iOS7之前单一环境下(Develop/Distribution)每一个设备一个DeviceToken;iOS7及以上单一环境下(Develop/Distribution),一个bunkered对应一个DeviceToken.

iOS收不到push的情况归纳:
1).appID是否把push开关打开了

2).系统设置里面是否把相应app的通知开关关闭了

3).appID是否是带“*”的

4).前后端证书appID和后端推送证书appID是否是同一个

5).前端环境和后端环境是否相同(同为developer或同为distribution)

6).后端推送证书是否过期(有效期一般为一年)

7).如果是拿不到deviceToken,并且IOS系统设置中通知开关部分打开,这时手动切换一下其它开关的状态,使其可接受到deviceToken(苹果的bug,一般是由于用户打开部分推送开关的情况下,把整个接受推送的开关关闭掉,然后卸载再重装app所致)

8).app在系统设置通知里关闭接受消息通知,这时如果再重新安装app,开关状态依旧关闭(ios8以上一个系统版本有这个问题)

9).看看手机是否设置了代理,测试人员经常设置代理进行测试。

10).后端推送数据包过大,IOS8之前推送支持256个字节,IOS8之后支持2K,这时候需要上报deviceToken时,把系统版本号也上报上去,便于推送时根据不同版本号进行不同长度的数据推送。
iOS收到不该收的push怎么办?

iOS后台需要定期去苹果后台调用feedback接口,删除不必要的deviceToken,而且如果我们帐号退出登录某一台设备之后,一定要进行解绑,确保物流和订单之类的消息不会推错设备。

苹果通知中心消息点击之后不消失怎么办?

如果推送到 APNs 时,Badge number 被指定为0 ,则可能出现 push消息在通知中心被点击后,尽管调用了   [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 但 APNs 消息在通知中心不会被删除的情况。 这种情况可以按如下代码调用以清除通知中心的 push通知。

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 1 ];

[[UI
4000
Application sharedApplication] setApplicationIconBadgeNumber: 0]; 
iOS push消息可以定制吗?

App客户端可以进行一些定制,比如接收消息的时间段(或者静音时间段)、对某类消息设置定制与否,后台在消息推送时可根据相应的定制参数进行相应过滤。
iOS push消息可以做那些方面的扩展?

1).可以对一些实时性较强消息推送过来之后,运用today扩展进行展示,比如一些热销或促销商品。(可参考淘宝app的展示)

2).push 消息到达之后,如果app没有启动,则可以让其在后台运行,并下载相应的消息详情,保存到本地,待app应用打开之后再从本地加载相应消息。

3).可结合Apple Watch做相应的展示,一些物流消息的展示如果与Apple Watch配对的iphone处于黑屏状态下,则可在Watch上进行展示。(Watch上只有界面展示,处理逻辑在iphone上)
iOS push推送测试和调试

可以用PushMeBaby或php脚本来从Mac系统上进行推送。

Distribution环境的调试由于无法联机调试,可以通过查看真机log以及崩溃日志来进行调试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: