最近公司使用sencha touch开发app需要实现推送的功能,本渣花了一周的时间才把安卓和ios都实现了推送已经跳转页面的功能。晚上关于推送的资料很少,关于推送后页面跳转的资料就更少了,所以这里记录一下怕以后忘了。
首先是安卓的实现方式(首先需要在极光推送上面去注册一个账号):
1:用sencha CMD创建st应用:
- sencha -sdk D:\java\sencha-touch\touch-2.3.1 generate app FirstApp ../FirstApp
2:在刚在创建的st文件夹里面初始化phonegap(cmd里面的文件目录需要在文件夹下面)
- sencha phonegap init com.cloudvast.FirstApp FirstApp
需要先修改下phonegap.local.properties这个文件:
把这里的ios修改成android,因为我们现在打包的是安卓应用;
3:安装极光推送针对phonegap的插件,把cmd里面的目录cd到phonegap文件夹下
- phonegap plugin add https://github.com/jpush/jpush-phonegap-plugin.git
打开新生成的文件,选择push-sdk-release1.6.1.jar文件:
鼠标右键 > Build Path > add to Build Path添加到工程中
再打开相同目录下的JPushPlugin.java文件
找到这一行,把com.thi.pushtest修改为初始化phonegap用的那个包名,我这里修改后为:import com.cloudvast.FirstApp.R;,保存后关闭
找到 插件包下面的plugin.xml文件并打开:
找到这一行
在value里面填上我们在极光推送上面申请到的AppKey。
到此为止,phonegap集合极光推送就完成了,打包后就能正常的用推送了。接下来是实现页面跳转的功能:
找到插件包下面的JPushPlugin.js文件打开:
在文件中添加一段代码:
- JPushPlugin.prototype.getNotification = function(successCallback, data) {
- console.log("JPushPlugin:getNotification");
- try {
- ret = cordova.exec(successCallback, successCallback, 'JPushPlugin', "getNotification", [data]);
- return ret;
- } catch (exception) {
- alert(exception);
- }
- }
然后在我们的sencha touch中的app.js文件中写逻辑代码
添加代码:
- document.addEventListener('resume', function() {
- window.plugins.jPushPlugin.getNotification(function(obj) {
- // obj["message"]为收到的推送信息
- if (obj["message"] != "") {
- var EXTRA = obj.extras['cn.jpush.android.EXTRA'];
- EXTRA = EXTRA.replace(/\\/g, "");
- EXTRA = Ext.JSON.decode(EXTRA, true);
- if (EXTRA.type == "mode") {
- Ext.getCmp('tab').setActiveItem(1);// 如果传递过来的type=='mode'就跳转到第二张页面
- }
- }
- }, false);
- });
EXTRA为极光推送发送通知的时候下面的可选设置中的附加字段。
最后把cmd的目录移动到phonegap目录下面执行打包操作:
- sencha app build native
原文地址:http://blog.csdn.net/chen2991101/article/details/36215975