ionic1极光推送
演示当前的版本:ionic1.7.0,cordova5.0.0, android 6.1.2, ios 4.3.1
1.首先确定你的安卓版本和插件版本
jpush插件从 v3.4.0 开始支持 cordova-android 7.0.0,jcore插件v1.2.0 版本开始支持 cordova-android 7.0.0,因 cordova-android 7.0.0 修改了 Android 项目结构,因此不兼容之前的版本。
2.创建安卓应用
首先在项目根目录下的config.xml文件确定你的id,这个id要与创建的应用的android中配置的应用包名(确定后不可改)一致
3.添加iOS应用
需要准备推送用的证书
确定证书所用的Bundle ID与项目config.xml文件中你的id一致
4.安装插件
方法1:android7.0.0以上的版本:
ionic plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey
方法2:android7.0.0以下的版本:
ionic plugin add cordova-plugin-jcore@1.1.12
plugin add jpush-phonegap-plugin@3.3.2 --variable APP_KEY=your_jpush_appkey
APP_KEY在极光推送的应用信息中查看
ps:方法2中实测安卓有效,但iOS无法完成注册。所以建立了两个项目,一个用的方法1(jpush的版本3.6.3,jcore自动安装的版本是1.2.1。)打包iOS,一个用的方法2打包android
5.js代码
测试代码:
app.js
$ionicPlatform.ready(function () {
var push =window.plugins &&window.plugins.jPushPlugin;
if (push) {
plugins.jPushPlugin.init().catch(function (err) {
console.log('极光初始化错误:' +JSON.stringify(err));
})
}
})
详细代码
app.js
var notificationCallback =function (data) {
// try {
// data = JSON.stringify(data);
// var obj = JSON.parse(data);
// var idValue = obj.extras['cn.jpush.android.EXTRA'].id;
// var viewName = obj.extras['cn.jpush.android.EXTRA'].viewName;
// var paramStr = obj.extras['cn.jpush.android.EXTRA'].param;
// var param = eval('(' + paramStr + ')');
// $state.go(viewName, param);
// } catch (exception) {
// alert(exception);
// }
};
PushService.init(notificationCallback);
.factory('PushService',function () {
var push;
return {
setBadge:function (badge) {
if (push) {
plugins.jPushPlugin.setBadge(badge);
}
},
setAlias:function (alias) {
if (push) {
// plugins.jPushPlugin.setAlias(alias);
var param = {'sequence':1,'alias': alias};
plugins.jPushPlugin.setAlias(param,function (data) {
},function (e) {
});
}
},
check:function () {
if (window.jpush &&push) {
plugins.jPushPlugin.receiveNotificationIniOSCallback(window.jpush);
window.jpush =null;
}
},
init:function (notificationCallback) {
push =window.plugins &&window.plugins.jPushPlugin;
if (push) {
plugins.jPushPlugin.init().catch(function (err) {
console.log('极光初始化错误:' +JSON.stringify(err));
});
// plugins.jPushPlugin.init();
// plugins.jPushPlugin.setDebugMode(true);
plugins.jPushPlugin.openNotificationInAndroidCallback = notificationCallback;
plugins.jPushPlugin.receiveNotificationIniOSCallback = notificationCallback;
}
}
};
})
6.编译测试:
iOS项目编译后打包需要在x-code把项目的推送提醒打开,在项目的Resources下的JPushConfiga.plist中确定下项目的appkey是否绑定及与推送后台和打包时的appkey是否一致
几次项目测试,刚集成完插件的项目不会立刻注册成功接收消息,app运行后可以稍等等,再在极光后台推送测试。如果还是不可以,可以运行下
cordova plugin save
ionic platform rm/add iOS/android
ionic build iOS/android
祝成功。