ionic cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey(这里为极光的appkey)
npm install --save @jiguang-ionic/jpush
注意:在android6.4和android7.0之后的文件结构有所不一样。
因为我直接安装最新,但是我android@6.4,所以需要搬下插件位置。
即可。
前端代码:
1.在app.module.ts注册插件
import { JPush } from '@jiguang-ionic/jpush';
2.在main.ts添加监听事件
// 打开
document.addEventListener('jpush.openNotification', (event?: any)=>{
console.log('---------------jpush openNotification main----------------')
console.log(JSON.stringify(event))
alert(JSON.stringify(event))
}, false);
// 获取自定义信息内容
document.addEventListener('jpush.receiveMessage', (event?: any)=>{
console.log('---------------jpush receiveMessage main----------------')
console.log(JSON.stringify(event))
alert(JSON.stringify(event))
}, false);
// 后台接受通知
document.addEventListener('jpush.receiveLocalNotification', (event?: any)=>{
console.log('---------------jpush receiveLocalNotification mainmain----------------')
console.log(JSON.stringify(event))
alert(JSON.stringify(event))
}, false);
3本地通知
// jpush
this.JPush.addLocalNotification(1, 'content', 'title', 1, 100, '{"data": "123"}');
ios
鉴于ios接触很少,只是做零散的笔记
ios有3种证书,开发证书,生产证书,推送证书。我就让同事拉我进开发者,我是只能查看和使用
然后一些Xcode设置
开启与证书一直的相关设置
设置好debug
在ionicbuild后需要添加原生代码来注册,注册成功才能接受通知,否则只能使用本地通知和自定义信息。
ionic cordova build ios
ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
第一个为正常build,第二个有部分build成功,但是无法真机调试的解决方案之一。
最后,在AppDelegate.m添加代码:这里在极光推送的ios文档有
https://docs.jiguang.cn/jpush/client/iOS/ios_guide_new/#_5
如果一切正常,就可以正常推送信息。
当出现这个错误的时候:
我的解决方法是:
原来的“New Build System”设置成“Legacy Build System”
在第一次接触ios,很多各种证书问题,设置问题,所以就靠记忆回想记录,各种零散,方便自己查看。
推送功能,在前台,后台的时候,都安卓和ios都可以接受到发送通知,自定义信息只能在前台接受到;
在debug的时候,关了app,ios依然可以接受到通知;安卓不行;据说,大的品牌例如qq,百度等等这些app假如了厂商的白名单,任务器关了也会有相关程序在;