ionic1极光推送

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中配置的应用包名(确定后不可改)一致

config.xml
ionic1极光推送_第1张图片
推送设置中的Android配置

3.添加iOS应用

需要准备推送用的证书

确定证书所用的Bundle ID与项目config.xml文件中你的id一致


ionic1极光推送_第2张图片
推送设置中的iOS配置

4.安装插件

方法1:android7.0.0以上的版本:

ionic plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey

方法2:android7.0.0以下的版本:

ionic plugin add [email protected]

plugin add [email protected] --variable APP_KEY=your_jpush_appkey

APP_KEY在极光推送的应用信息中查看

ionic1极光推送_第3张图片
醒目

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);


ionic1极光推送_第4张图片
app.js

.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;

}

}

};

})


ionic1极光推送_第5张图片
service

6.编译测试:

iOS项目编译后打包需要在x-code把项目的推送提醒打开,在项目的Resources下的JPushConfiga.plist中确定下项目的appkey是否绑定及与推送后台和打包时的appkey是否一致

ionic1极光推送_第6张图片


ionic1极光推送_第7张图片

几次项目测试,刚集成完插件的项目不会立刻注册成功接收消息,app运行后可以稍等等,再在极光后台推送测试。如果还是不可以,可以运行下

cordova plugin save

ionic platform rm/add iOS/android

ionic build iOS/android

祝成功。

你可能感兴趣的:(ionic1极光推送)