JPush PhoneGap/ Cordova Plugin插件Android系统上不能接收推送消息的问题?

JPush PhoneGap/ Cordova Plugin插件github上的Android API文档
https://github.com/jpush/jpush-phonegap-plugin/blob/master/doc/Android_detail_api.md

1.问题现象描述:

a).无法注册或者无法获取到用户id;下面是我的代码中的一部分,经过断点发现getRegistrationID没有返回用户id

window.plugins.jPushPlugin.init();//初始化也没有成功

window.plugins.jPushPlugin.getRegistrationID(res=> {
  console.log('jid',res);//这里打出的结果为空字符串
});

经过排查发现上述问题出现在我安装的插件版本问题:
先说一下我这边能收到推送时的插件版本搭配:

cordova-plugin-jcore 1.1.4 "JCore"
jpush-phonegap-plugin 3.1.7 "JPush"

下面是我收不到推送时的插件版本搭配:

cordova-plugin-jcore 1.2.0 "JCore"//这两个版本搭配是我没有指定jpush-phonegap-plugin版本号,默认安装的
jpush-phonegap-plugin 3.4.0 "JPush"

同样,我也试了一下jcore版本是1.2.0与jpush是3.3.2的搭配。结果没有报错,还是接受不到消息

2.解决方案:

下图是gitHub文档上给出的注意事项
JPush PhoneGap/ Cordova Plugin插件Android系统上不能接收推送消息的问题?_第1张图片
a).将jpush-phonegap-plugin插件卸载(如果先卸载jcore会报错,提示该插件被占用,这是因为jpush-phonegap-plugin依赖jcore插件);
b).再将jcore卸载;
c).重新安装jcore(指定版本1.1.4),jcore注意版本要在1.2.0以下(如果先安装jpush-phonegap-plugin,那么此时会默认安装jcore1.2.0版本,还是因为依赖关系);
d).安装好了jcore后再安装jpush-phonegap-plugin(指定版本3.1.7);

按上述步骤安装好之后打包运行就OK了!

下面是安装语句:

ionic cordova plugin add cordova-plugin-jcore@1.1.4
cordova plugin add jpush-phonegap-plugin@3.1.7 --variable APP_KEY=your_jpush_appkey --save

3.总结:

开发中之所以会造成这种问题,还是应为对这些插件的版本平时没有太大重视,其实官网上已经告诉我们可能会引起这些情况;我之所以遇到这个问题也是因为我整理文件目录,将插件文件夹全部删除了,然后我天真的认为简单的在将项目build 一下这些插件就自动安装了,现在想想这个想法还是太天真了,弄了一下午时间,各种翻阅文档啊、、、;

反正,遇到问题多看文档,这样会给我们解决不少时间。


为了能及时的将自己踩到的前端坑(包括ionic,angular,ReactNative,小程序,APICloud)分享给大家,以后会逐渐将文章转移到微信公众号:前端e家(front_e_family)。可直接扫码关注,公众号会不定期更新新文章,分享踩坑笔记!期待您的关注!
JPush PhoneGap/ Cordova Plugin插件Android系统上不能接收推送消息的问题?_第2张图片

你可能感兴趣的:(前端开发,ionic2)