windows phone 8 推送几点说明

1.关于加密,微软文档这么写的,不过给的官方demo也没加密好像(如果加密了,我们就没法向微软获取的uri发送请求了,不知道为什么要加密?):

http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/hh202940(v=vs.105).aspx

应用应该在向其相应的云服务发送 URI 之前对其通知通道 URI 进行加密。

2.使用通道的时候,很容易形成一种现象:网络不好的时候,获取不到uri,未赋值的时候使用值,造成异常。

解决办法就是刚进入程序的时候在mainpage页面赋初值。

比如:

string puri = "";
if (!iso.TryGetValue<string>("pushuri", out puri))
{
iso.Add("pushuri", "");
}

3.在更新通道事件:NotificationChannelUriEventArgs中,写独立存储(IsolatedStorageSettings)

(1)刚开始联网的时候还好,能正常写进去

(2)如果从“未联网”-->“联网”的话,存不进去。原因和网络延迟关系很大。

正确的做法是:这个事件执行完了之后再存。然后每次执行完之后,下载获取uri,如果不为空且和上次不同,则发给服务器,然后再保存。(剩下情况:比如 空,就不发给服务器)

因为网络原因,可能没法及时收到,为了保险起见,我是这么做的:

(1)当更新通道的时候,请求和服务器通信一次

(2)等到NotificationChannelUriEventArgs事件执行完了之后,如果获取了新的URI,就再和服务器通信一次。

 弄一个双保险,实际上这也不是个很好的办法,只是增加一下概率吧。

4.全局变量的生命周期,在关闭程序的时候就结束了,所以要想用推送时候存,必须得存在独立存储中。

 

posted on 2014-04-02 10:32  鸣动我心  阅读(213)  评论(0编辑  收藏  举报