问题
关于 Registration ID 第一次获取不到,可以用 setTimeout
延迟后获取。
ios 开发环境能收到通知消息,生产模式接收不到通知消息。
ios 发布到 app store 上,下下来的 app 仍然获取不到id。使用 xcode 连接 iPhone 安装的 app,就能获取到 id。
版本
lonic3
angular cli:6.0.7
node:8.11.1
关于如何下载jpush插件及极光推送文档
https://github.com/jpush/jpush-phonegap-plugin
https://docs.jiguang.cn/jpush/guideline/intro/
具体代码
业务需求:登录时获取到 Registration ID 后关联此账户,然后把 ID 发送给后台。
首先 初始化jpush
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
platform.ready().then(() => { statusBar.styleDefault(); splashScreen.hide(); if (platform.is('cordova')) { this.hotCode.hotCodeUpdate(); jpush.init(); jpush.setDebugMode(false); } });
|
在登录界面获取到 token 后发送 id
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
public doLogin = () => { this.ajax.loadData({ uri: 'login', method: 'post', title: '登录请求', data: this.loginForm.value, }).subscribe(res => { this.msg.hideLoader(); if (res.status === 1) { const crypt_token: string = res.payload.crypt_token; const zhiwei: string = res.payload.zhiwei; this.storage.set('zhiwei', zhiwei); this.storage.set('crypt_token', this.stringCode.encode(crypt_token)).then(() => { this.events.publish('login', res); this.viewCtrl.dismiss();
setTimeout(() => { this.jpush.getRegistrationID().then(res => { this.registrationID = res;
this.getJiGuangID(this.registrationID); }); }, 1000); }); } }); } }
public getJiGuangID = (id) => { this.ajax.loadData({ uri: `jiguang_info/` + id, method: 'get', title: '发送极光推送 registrationID ' }).subscribe(res => { }) }
|
问题解决
ios 开发环境能收到通知消息,生产模式接收不到通知消息。
解决方案:
xcode
上找到 TARGET
=> Capabilities
=> Push Notification
选项点开
xcode
上找到 TARGET
=> Build Setting
=> Code Signing Identity
=> Code Signing Entitlements
Entitle-release.plist
看看有没有 aps-environment
字段,没有补上(关键是这一步,加上字段就成功了!)
1 2 3 4 5 6
| <plist version="1.0"> <dict> <key>aps-environment</key> <string>development</string> </dict> </plist>
|
注意点:
- 取不到 token 就取不到 registrationID。(这个坑了我好久。。。)
- 关于 Registration ID 第一次获取不到,可以用 setTimeout 延迟后获取。
- Registration ID还是获取不到,请检查证书及各个id是否对应。
参考文档:
https://github.com/jpush/jpush-phonegap-plugin/issues/350#issuecomment-391403275
https://community.jiguang.cn/t/jpush/5145/4
https://community.jiguang.cn/t/jpush/5145/9