最近手上一个项目须要经过APNS向app推送消息,因为后端采用drf框架,在github上找了好多模块,最终发现pzanitti大神的推送模块 django-push-notifications 比较好用,特此感谢pzanitti大神,也像你们推荐使用。下面是个人配置流程仅供参考,你们能够根据需求进行修改。python
1.模块Dependenciesgit
Python 2.7 or 3.4+
github
Django 1.11+
web
For the API module, Django REST Framework 3.7+ is required.
django
2. Setup后端
pip install django-push-notificationsapi
3. settings.py 配置app
# 将模块导入
框架
INSTALLED_APPS = ( ... "push_notifications" ) ui
# 推送消息配置
PUSH_NOTIFICATIONS_SETTINGS = { # pem文件的绝对路径 "APNS_CERTIFICATE": r"/path/to/xxx.pem",
# 在apns服务中心配置,配置文档地址后面贴上 "APNS_TOPIC": "xxx.xxx.xxxApp",
# 这个端口号不须要改了 "APNS_USE_ALTERNATIVE_PORT": 2197, "UPDATE_ON_DUPLICATE_REG_ID": False,
# 个人配置使用的是沙箱环境,生产环境的配置相似 "CONFIG": "push_notifications.conf.AppConfig", "APNS_USE_SANDBOX": "api.development.push.apple.com", "APPLICATIONS": {
# 下面的xxx.xxx.xxxApp是上面的APNS_TOPIC,因为不方便写真实的TOPIC,你们见谅,注意修改为本身配置好的 "xxx.xxx.xxxApp": { # PLATFORM (required) determines what additional settings are required. "PLATFORM": "APNS", # required APNS setting
#下面的是证书的绝对路径,跟上面的配置"APNS_CERTIFICATE": r"/path/to/xxx.pem"一致 "CERTIFICATE": r"/path/to/xxx.pem",, "USE_SANDBOX": True, }, }, }
4 urls.py 配置
router.register(r'api/v1/device/apns', APNSDeviceAuthorizedViewSet) # 注册设备的
5. 注册设备参数说明
经过第四步配置的路由添加设备时,几个参数和你们说一下。
Application ID : 上面配置的APNS_TOPIC
Registration ID: device token
Device ID : UDID
6.证书生成
IOS生成pem 方法: https://blog.csdn.net/lgm252008/article/details/11201467
注意生成pem必定要no key
7. 总结
按照上面流程配置好,就能够推送消息了,但愿对你们有所帮助,少踩一些坑。最后再次感谢pzanitti大神。
文档地址: