ionic cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey(这里为极光的appkey)

npm install --save @jiguang-ionic/jpush

79e582bb2905b695c1b397aa596eee21.png

注意:在android6.4和android7.0之后的文件结构有所不一样。

因为我直接安装最新,但是我android@6.4,所以需要搬下插件位置。

637e93d6c297337a6694edc722c3f1f2.png

ad81ff5680029ca886a1057856b90752.png

即可。

前端代码:

1.在app.module.ts注册插件

import { JPush } from '@jiguang-ionic/jpush';

4d69bf8c733c2d1838f7414f16225ea1.png

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设置

a96cecabb02377861f6aaae30f2fe8d6.png

开启与证书一直的相关设置

aa082f74db2da47612f9f0839a93c7d9.png

设置好debug

d4051139ae74de4edb257d1576ddb31a.png

c78ce203e1ea765cad87851cb5de5153.png

在ionicbuild后需要添加原生代码来注册,注册成功才能接受通知,否则只能使用本地通知和自定义信息。

ionic cordova build ios

ionic cordova build ios-- --buildFlag="-UseModernBuildSystem=0"

第一个为正常build,第二个有部分build成功,但是无法真机调试的解决方案之一。

最后,在AppDelegate.m添加代码:这里在极光推送的ios文档有

822960ba4d808160041dc6d4dae7b95c.png

49646847282d82e62778dbd9f42e95d0.png

e4875b06e289d5f48df1cc5da62c9a57.png

62a33f9b22dad2a291103fa3f43e85e5.png

b91f02447747a65a28afca805604b7e3.png

293585aebf9a023b15a10a28fc3d7e57.png

ba23d22cdceba35e70a380fa462f74c6.png

如果一切正常,就可以正常推送信息。

当出现这个错误的时候:

7a486052038ae99f7b74ab0abeb428b5.png

我的解决方法是:

原来的“New Build System”设置成“Legacy Build System”

866f6fc87b2fc6c8e761f7c4d227846f.png

d2f4b3c9925ddc1aa6002bc2393717a2.png

在第一次接触ios,很多各种证书问题,设置问题,所以就靠记忆回想记录,各种零散,方便自己查看。

推送功能,在前台,后台的时候,都安卓和ios都可以接受到发送通知,自定义信息只能在前台接受到;

在debug的时候,关了app,ios依然可以接受到通知;安卓不行;据说,大的品牌例如qq,百度等等这些app假如了厂商的白名单,任务器关了也会有相关程序在;

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐