最近公司使用sencha touch开发app需要实现推送的功能,本渣花了一周的时间才把安卓和ios都实现了推送已经跳转页面的功能。晚上关于推送的资料很少,关于推送后页面跳转的资料就更少了,所以这里记录一下怕以后忘了。
首先是安卓的实现方式(首先需要在极光推送上面去注册一个账号):
1:用sencha CMD创建st应用:
sencha -sdk D:\java\sencha-touch\touch-2.3.1 generate app FirstApp ../FirstApp这样就生成了一个标准的sencha touch文件
2:在刚在创建的st文件夹里面初始化phonegap(cmd里面的文件目录需要在文件夹下面)
sencha phonegap init com.cloudvast.FirstApp FirstAppcom.cloudvast.FirstApp这个很重要,这个需要和你在极光推送里面创建的安卓的应用包名一致否则可能会出错。初始化了phonegap后文件夹下面的文件为:
需要先修改下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); } }
添加代码:
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为极光推送发送通知的时候下面的可选设置中的附加字段。
sencha app build native
phonegap+极光推送+页面跳转,布布扣,bubuko.com
原文地址:http://blog.csdn.net/chen2991101/article/details/36215975