ionic1極光推送
演示當(dāng)前的版本: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 項(xiàng)目結(jié)構(gòu),因此不兼容之前的版本。
2.創(chuàng)建安卓應(yīng)用
首先在項(xiàng)目根目錄下的config.xml文件確定你的id,這個(gè)id要與創(chuàng)建的應(yīng)用的android中配置的應(yīng)用包名(確定后不可改)一致
3.添加iOS應(yīng)用
需要準(zhǔn)備推送用的證書
確定證書所用的Bundle ID與項(xiàng)目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在極光推送的應(yīng)用信息中查看
ps:方法2中實(shí)測(cè)安卓有效,但iOS無法完成注冊(cè)。所以建立了兩個(gè)項(xiàng)目,一個(gè)用的方法1(jpush的版本3.6.3饿这,jcore自動(dòng)安裝的版本是1.2.1。)打包iOS撞秋,一個(gè)用的方法2打包android
5.js代碼
測(cè)試代碼:
app.js
$ionicPlatform.ready(function () {
? ? ? ? ?var push =window.plugins &&window.plugins.jPushPlugin;
? ? ? ? ? if (push) {
? ? ? ? ? ? ? ? ? plugins.jPushPlugin.init().catch(function (err) {
? ? ? ? ? ? ? ? ? ? ? ? ? console.log('極光初始化錯(cuò)誤:' +JSON.stringify(err));
? ? ? ? ? ? ? ? ? ?})
? ? ? ? ? ? ?}
? })
詳細(xì)代碼
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('極光初始化錯(cuò)誤:' +JSON.stringify(err));
});
// plugins.jPushPlugin.init();
// plugins.jPushPlugin.setDebugMode(true);
? ? ? ? ? ? ? ? plugins.jPushPlugin.openNotificationInAndroidCallback = notificationCallback;
plugins.jPushPlugin.receiveNotificationIniOSCallback = notificationCallback;
}
}
};
})
6.編譯測(cè)試:
iOS項(xiàng)目編譯后打包需要在x-code把項(xiàng)目的推送提醒打開长捧,在項(xiàng)目的Resources下的JPushConfiga.plist中確定下項(xiàng)目的appkey是否綁定及與推送后臺(tái)和打包時(shí)的appkey是否一致
幾次項(xiàng)目測(cè)試,剛集成完插件的項(xiàng)目不會(huì)立刻注冊(cè)成功接收消息吻贿,app運(yùn)行后可以稍等等串结,再在極光后臺(tái)推送測(cè)試。如果還是不可以廓八,可以運(yùn)行下
cordova plugin save
ionic platform rm/add iOS/android
ionic build?iOS/android
祝成功奉芦。