Window + Net + Corona + IOS PUSH

这两天一直在处理IOS上的PUSH这块,顺便记录下(本文只是综合网络资料)。请狠拍

首先提一下开发环境,服务端的开发是用Net(C#),客户端是用Corona(Lua)。至于服务端的推送,采用的是个开源框架PushSharp(协议为:Apache。代码托管于Github上,详细见文章尾的参考链接地址)



IOS上push的原理简单的来说就是(详细可google):

1.设备连接APNs,获取Dervice Token

2.设备向App的服务端发送Device Token

3.服务端响应PUSH动作

4.服务端向APNs发送推送消息(带Device Token)

5.APNs向设备发送推送消息

另外在此之前,必须先申请PUSH证书。由于开发机子是xp,所以网上找了一份window下产生证书的教程 步骤如下:(见链接1)

1.下载安装OpenSSL-Win32(需要Visual C++ 2008 Redistributables)地址在此:http://slproweb.com/products/Win32OpenSSL.html

2.cmd下,输入以下命令。(需要注意的是emailAddress要与你的Apple开发者账号的邮件地址一致)

cd C:\OpenSSL-Win32\bin\

set RANDFILE=.rnd

set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg

openssl genrsa -out my.key 2048

openssl req -new -key my.key -out my.certSigningRequest -subj "/emailAddress=myemail@sample.com,CN=Common Name,C=CN"


3.将生成的certSigningRequest文件上传到Apple的开发者相关页面(例如开发者证书、推送证书等,这个步骤网上很多,不细表)

4.将最后生成的cer文件改个名字后放到C:\OpenSSL-Win32\bin\目录中,和之前生成的文件放在一起。

5.P12文件包含了证书的密钥和公钥,可以方便迁移到其他电脑上。 最后在刚才的环境中运行命令行(如果之前命令行窗口被关了,还是要重新执行一遍开始的几条set环境配置命令):

  值得注意的是:这边的password,下边在服务端代码上要用到

openssl x509 -in my.cer -inform DER -out my.pem -outform PEM

openssl pkcs12 -export -inkey my.key -in my.pem -out my.p12 -password pass:111111

此外在在Mac上下载证书也有个很详细的教程 (见链接2)

到这边,证书基本上差不多了。然后就是服务端的了。其实利用PushSharp,要做的东西很简单,放两张官方的实例图片。

到这边连,服务端都差不多了。不过,有个最重要的东西,那就是设备的Device Token还没解决。

网上Object-C写取这个Token资料很多,但是因为我们项目用的是Corona,这种方式显然行不通。还有Corona有官方文档  或者参考这里(链接见3、4)

到这边,基本上差不多了。至于Device Token 服务端的保存,或者Device Token改变(这个东东是可能会变的),再或者异步推送等等问题,就是另外一篇了。

最后重申一下:本文绝大部分是来源网络,非本人原创,本人只是对一些资料的整理。如若侵犯你的版权,请来信说明,谢谢!

链接1:http://open.zhui.cn/index.php?title=Windows%E7%8E%AF%E5%A2%83%E4%B8%8B%E7%94%9F%E6%88%90Apple%E8%AF%81%E4%B9%A6%E6%95%99%E7%A8%8B

链接2:https://github.com/Redth/PushSharp/wiki/How-to-Configure-&-Send-Apple-Push-Notifications-using-PushSharp
链接3:http://www.coronalabs.com/blog/2011/12/21/push-notifications-for-ios-in-corona-sdk/

链接4:http://www.pushwoosh.com/programming-push-notification/corona-sdk-ios-push-notifications/

原文地址:https://www.cnblogs.com/haiyidao/p/2779735.html