此文章针对于2017年10月份后,部分ionic2 ionic3开发者极光推送无法setAlias() setTags()的问题。
Jpush 于 2017年10月份更新了 jpush-phonegap-plugin的Api。
部分大神级开发者封装的 npm包(node_modules包)的Api与新版本的 jpush-phonegap-plugin的Api不能对应,所以setAlias和 setTags无法正常生效(请检查是否set后返回的信息为OK,OK其实并没有set成功,真正set成功后返回是个html对象[Object])。
首先大家可以看一下 新版本的Jpush plugin 的api接口。
然后大家可以看一下npm包里面的参数设置方式,是不是跟Jpush plugin提供的方式不一样。
这里仅仅是举例一下,具体大家用的是哪位大神开发者封装的包还需要自己去看一下。
下面是解决方案。
1.ionic2-jpush 包(针对于 "@ionic-native/core":"^4.3.2",ionic-native/core 版本较高的开发者)
https://github.com/HsuanXyz/ionic2-jpush (npm install ionic2-jpush --save)
此npm包在github已经跟随jpush plujin进行了更新,但是npm源上的包并没有跟随升级,所以大家npm install ionic2-jpush --save下来的包还是旧版的包(api 不同的包)
解决办法是:
1.1 先在自己的工程下npm install ionic2-jpush --save
(或者直接 npm install https://github.com/HsuanXyz/ionic2-jpush也可以,就不用替换了。)
1.2 然后从https://github.com/HsuanXyz/ionic2-jpush中下载全部文件 ionic2-jpush-master.zip
1.3 解压后替换ionic2/3工程目录下node_modules/ionic2-jpush 里面的文件就好了 记得要替换干净
1.4 然后更改自己的代码,注意新的setalias 和 settags的参数。
2.dist/@ionic-native/jpush 包 (<= 为啥是蓝色啊??)(针对于 "@ionic-native/core":"^3.6.0",ionic-native/core 版本较低的开发者)
https://github.com/kongdewen1994/ionic2-jpush-cordova-plugin
这个包的api调用方式一开始就是设置而 any类型。
2.1 按照说明导入包
2.2 改自己代码(看上面)
2.3 测试吧
3.直接调用plugin api
3.1 (<any>window).plugins.jPushPlugin.init();