β

PushPlugin-为iOS的Hybird App提供APNS服务

梦想的港湾 369 阅读

APNS是什么?

APNS是iOS生态下面的推送机制。其原理是APP启动的时候,向苹果注册,并获得一个唯一token,然后不论app是否继续在运行,都可以通过调用苹果的APNS服务,来向持有token的设备推送消息,例如顶部的通知。

之前有SSE了,为什么还要APNS?

一开始我也分不清,后来发现,APNS可以在应用关闭的时候,通过iOS系统的通知栏,推送消息给用户,让用户重新进入app中执行某些事情。而这些,是SSE做不到的,SSE仅仅是一套消息机制,必须有app运行的时候才有效。

说了这么久,怎么用?

参考这篇文章: https://github.com/phonegap-build/PushPlugin#automatic_installation

使用方法:

1、安装PushPlugin插件

cordova plugin add https://github.com/phonegap-build/PushPlugin.git

2、配置插件

这个是我把官方的例子,做了一下AMD的封装,使用的方法如下。

// 加载模块
var pushNotification = require('pushNotification');
// 向消息中心注册
pushNotification.register();

然后,就没有然后了。留意tokenHandler里面的结果,收集下来,然后就可以给服务端。app启动后,就可以随时接收服务端的信息了。

看上去很简单,为什么用了这么多时间?

嗯,APP端很简单,但是服务端涉及到各种证书,有点弄不清,然后官方的文档又都是全英,半桶水英语看得够呛。

PushPlugin为我们准备了Example目录,里面的server端有ruby的脚本供我们测试。

测试前的准备:

  1. Ruby的环境
  2. 上面已经装好PushPlugin的APP
  3. 安装pushmeup
    sudo gem install pushmeup

接下来就是看得我头晕的生成pem的过程。

  1. 我也懒得翻译了,直接参考这篇文章,获得ck.pem文件。
  2. 编辑Example/server/pushAPNS.rb,配置里面的pem、pem密码和接收消息设备的token。
  3. 执行脚本,向设备推送消息。
    ruby pushAPNS.rb

PushPlugin使用小结

客户端安装PushPlugin,并配置好register的时机,同时,在获取到token之后,将token上报给服务端。

服务端按照苹果的要求,配置好各种证书后,向持有token的设备下达消息。

不论app是否仍在运行,设备都将会受到这条消息。

PushPlugin-为iOS的Hybird App提供APNS服务 ,首发于 梦想的港湾

作者:梦想的港湾
海洋的对岸,是梦想的港湾,或许,难免失败,偶尔孤单,相信,总能追赶
原文地址:PushPlugin-为iOS的Hybird App提供APNS服务, 感谢原作者分享。

发表评论