WEB开发网
开发学院手机开发iPhone 开发 iPhone的Push(推送通知)功能原理浅析 阅读

iPhone的Push(推送通知)功能原理浅析

 2010-06-19 18:53:00 来源:WEB开发网   
核心提示:it contains the same released push keys from back in July 2009. Everybody gets the same key, so it is going to have all the same problems of ALL the free push f

it contains the same released push keys from back in July 2009. Everybody gets the same key, so it is going to have all the same problems of ALL the free push fixes. Push isn't going to work very long and it is going to drain your battery.

其他出错的情况

我的iPhone在 cmwap下无法push?!

对的,这完全正常。在wap网内,TLS链接几乎无法建立成功。

我的iPhone在Wi-Fi下无法 push?!

实际上这得说是iPhone与某些无线路由器的不兼容。如果无线路由器开启了DNS转发功能,那 么很有可能你的iPhone无法成功与APNS服务器建立TLS链接。

解决方法:

关闭无线路由器的DNS转发功能,手动为iPhone的 Wi-Fi连接设置DNS为8.8.8.8

补充,实际上,这也就是为什么iPhone连接到Wi-Fi上而又不能收到Push的时候,会变得发热 且非常耗电。因为iPhone会不断尝试建立TLS链接。

如何得知我的Push是否破解成功?

一个简 单的方法就是安装 Twitbird Pro版本。在其Accounts页面,会显示当前软件的Push注册状况。

或者你可以用WinSCP之类 的软件查看iPhone上的

/var/mobile/Library/Preferences/com.apple.apsd.plist

文 件状态。

如果其大小为119字节,则说明该iPhone已经成功取得了设备令牌(device token),并保存在该文件中。

如果 小于该大小,则说明该iPhone已经和APNS链接过,但是未能取得设备令牌(device token)。

如果没有该文件,那说明该 iPhone根本没能成功连接到APNS。

其他一些值得注意的问题

iPod Touch与iPhone的Push机制不完全相同,锁屏后15分钟方检查一次。故请勿与上文对号入座。

APNS在发送Push消息时,如果发 现对应的iPhone链接中断,则会延后几分钟再发送。超过一个时间后,Push消息会被删除。因此请注意你的网络状况是否影响Push正常工作。

如上文所说,每台iPhone的设备令牌(device token)储存在/var/mobile/Library/Preferences/com.apple.apsd.plist 文件中。这就是为什么每次需要重装Push补丁时,建议删除push程序并删除该文件。

使用sbsettings的EDGE开关关闭EDGE, 却不关闭Push的话,会导致iPhone不断尝试建立TLS连接,最终耗尽电量。因此,如果你不打算或不能用Push,请关闭Push选项。

上一页  1 2 3 4 5  下一页

Tags:iPhone Push 推送

编辑录入:coldstar [复制链接] [打 印]
赞助商链接