Apns 服务端接入(node)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37263637/article/details/82852547

APNs(英文全称:Apple Push Notification service),中文翻译为:苹果推送通知服务.

本文只记录apns node版本接入和一些调试经验,不涉及证书申请及app端开发。
node有非常成熟apn相关模块,又快又陡。
模块文档:https://www.npmjs.com/package/apn

使用苹果APN首先需要准备以下参数

  1. 服务端证书(开发环境证书和生产环境证书)p12格式(或其他格式)
  2. 证书解压密码 app包名证书解压密码
  3. app包名app包名
  4. 测试而言还需要某个待推送app去获取到当前devicetoken测试而言还需要某个待推送app去获取到当前devicetoken

PS:这里比较重要是生产环境和开发环境,开发环境证书是指APP直接通过mac安装到手机。生产环境则app需要上传apple store下载。两个环境的deviceToken 不能通用。一定要分清环境。

Sample code:

const apn = require('apn');

const options = {
    pfx:"./服务端证书.p12",//证书路径
    passphrase:"123456",//证书解压密码
    production:true //是否是生产环境
  };

var apnProvider = new apn.Provider(options);

let note = new apn.Notification();
note.expiry = Math.floor(Date.now() / 1000) + 3600; // Expires 1 hour from now.
note.badge = 1;
note.sound = "ping.aiff";
note.alert = "\uD83D\uDCE7 \u2709 You have a new message";//待推送显示内容
note.payload = {'messageFrom': 'John Appleseed'};
note.topic = "com.xj.app.doorbell";//app包名
note.compiled = null;


let deviceToken = "bf5ce911111111a4a8f083c6024f664e9fb716fa6ec34e313d083882aaaaaaaa";//deviceToken 由app提供

apnProvider.send(note, deviceToken).then( (result) => {
    console.info(result);
    console.info(JSON.stringify(result));
});

猜你喜欢

转载自blog.csdn.net/m0_37263637/article/details/82852547