Titanium 使用刘明星的Jpush module做android端的消息推送

明星的jpush module android 版本用于用Titanium开发Android消息推送功能,使用步骤如下:

1.从github上下载titanium_module_jpush_android;
2.从项目中找到titanium_module_jpush_android/android/dist/com.mamashai.jpush-android-3.0.8.zip,解压并将得到modules文件;
3.在需要消息推送的项目下新建modules目录用于存放所需的modules,因module为Android版本,所以modules下新建android文件夹;
4.将解压缩得到的modules目录下android下的com.mamashai.jpush拷贝到新建的android文件夹下;
5.在xxx.js你所需要添加消息推送的js文件下)下键入如下代码:

//订阅推送:

var push = require('com.mamashai.jpush');
push.setAlias(Ti.App.Properties.getString("userid", ""), function(e){
    Ti.API.log("register to jpush code: " + e.code + ", token: " + e.device_token);
});
//接收推送:

var act = Titanium.Android.currentActivity;
var _intent = act.intent;
var str = _intent.getStringExtra("cn.jpush.android.EXTRA");
if (str && str.length > 0){
    //push_call(_intent.getStringExtra("cn.jpush.android.ALERT"), JSON.parse(str));
    //自己写的显示消息框方法
    show_alert("提示", e.intent.getStringExtra("cn.jpush.android.EXTRA"));
}

//用户点击了推送
var bc = Ti.Android.createBroadcastReceiver({
    onReceived : function(e) {
        Ti.API.info("cn.jpush.android.PUSH_ID: " + e.intent.getStringExtra("cn.jpush.android.PUSH_ID"));
        Ti.API.info("app: "                             + e.intent.getStringExtra("app"));
        Ti.API.info("cn.jpush.android.ALERT: "          + e.intent.getStringExtra("cn.jpush.android.ALERT"));
        Ti.API.info("cn.jpush.android.EXTRA: "          + e.intent.getStringExtra("cn.jpush.android.EXTRA"));
        Ti.API.info("cn.jpush.android.NOTIFICATION_ID: "+ e.intent.getStringExtra("cn.jpush.android.NOTIFICATION_ID"));
        Ti.API.info("cn.jpush.android.NOTIFICATION_CONTENT_TITLE: " + e.intent.getStringExtra("cn.jpush.android.NOTIFICATION_CONTENT_TITLE"));
        Ti.API.info("cn.jpush.android.MSG_ID: "         + e.intent.getStringExtra("cn.jpush.android.MSG_ID"));
        Ti.API.info("cn.jpush.android.TITLE: "          + e.intent.getStringExtra("cn.jpush.android.TITLE"));
        Ti.API.info("cn.jpush.android.MESSAGE: "        + e.intent.getStringExtra("cn.jpush.android.MESSAGE"));
        Ti.API.info("cn.jpush.android.CONTENT_TYPE: "   + e.intent.getStringExtra("cn.jpush.android.CONTENT_TYPE"));
        var str = e.intent.getStringExtra("cn.jpush.android.EXTRA"); 
        if (str && str.length > 0){
            //自己写的显示消息框方法
            show_alert("提示", e.intent.getStringExtra("cn.jpush.android.EXTRA"));
        }
    }
});

Ti.Android.registerBroadcastReceiver(bc, ['mamashai_jpush']);
//一定要释放掉,否则容易出问题
win.addEventListener("close", function(){
    Ti.Android.unregisterBroadcastReceiver(bc);
}); 

//收到推送,还未打开
var bc2 = Ti.Android.createBroadcastReceiver({
    onReceived : function(e) {
        var json = JSON.parse(e.intent.getStringExtra("cn.jpush.android.EXTRA"));
        //to do
    }
});
Ti.Android.registerBroadcastReceiver(bc2, ['mamashai_jpush_received']);
//一定要释放掉,否则容易出问题
win.addEventListener("close", function(){
    Ti.Android.unregisterBroadcastReceiver(bc2);
}); 

6.在tiapp.xml文件下键入如下代码:

<modules>
    <module platform="android" version="3.0.8">com.mamashai.jpush</module>
</modules>

7.注册并登录Jpush后,在控制台创建应用,获得AppKey;

8.在tiapp.xml文件下的

<android>
</android>

内键入如下代码:


<manifest package="(你的包名,例如com.uubpay.xxx)" >
        <permission
                android:name="(你的包名,例如com.uubpay.xxx).permission.JPUSH_MESSAGE"
                android:protectionLevel="signature" />

        <!-- Required  一些系统要求的权限,如访问网络等-->
        <uses-permission android:name="(你的包名,例如com.uubpay.xxx).permission.JPUSH_MESSAGE" />
        <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.WRITE_SETTINGS" />
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

        <!-- Optional for location -->
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
        <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
        <application>
                <service android:enabled="true" android:exported="false" android:name="cn.jpush.android.service.PushService">
                        <intent-filter>
                                <action android:name="cn.jpush.android.intent.REGISTER"/>
                                <action android:name="cn.jpush.android.intent.REPORT"/>
                                <action android:name="cn.jpush.android.intent.PushService"/>
                                <action android:name="cn.jpush.android.intent.PUSH_TIME"/>
                        </intent-filter>
                </service>
                <receiver android:enabled="true" android:name="cn.jpush.android.service.PushReceiver">
                        <intent-filter android:priority="1000">
                                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY"/>
                                <category android:name="(你的包名,例如com.uubpay.xxx)"/>
                        </intent-filter>
                        <intent-filter>
                                <action android:name="android.intent.action.USER_PRESENT"/>
                                <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
                        </intent-filter>
                        <intent-filter>
                                <action android:name="android.intent.action.PACKAGE_ADDED"/>
                                <action android:name="android.intent.action.PACKAGE_REMOVED"/>
                                <data android:scheme="package"/>
                        </intent-filter>
                </receiver>
                <receiver android:name="com.mamashai.jpush.MamashaiReceiver">
                        <intent-filter>
                                <action android:name="cn.jpush.android.intent.REGISTRATION"/>
                                <action android:name="cn.jpush.android.intent.UNREGISTRATION"/>
                                <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED"/>
                                <!--Required  用户接收SDK消息的intent-->
                                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED"/>
                                <!--Required  用户接收SDK通知栏信息的intent-->
                                <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED"/>
                                <!--Required  用户打开自定义通知栏的intent-->
                                <action android:name="cn.jpush.android.intent.ACTION_RICHPUSH_CALLBACK"/>
                                <!--Optional 用户接受Rich Push Javascript 回调函数的intent-->
                                <action android:name="cn.jpush.android.intent.CONNECTION"/>
                                <!-- 接收网络变化 连接/断开 since 1.6.3 -->
                                <category android:name="(你的包名,例如com.uubpay.xxx)"/>
                        </intent-filter>
                </receiver>
                <activity
                        android:configChanges="orientation|keyboardHidden"
                        android:name="cn.jpush.android.ui.PushActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar">
                        <intent-filter>
                                <action android:name="cn.jpush.android.ui.PushActivity"/>
                                <category android:name="android.intent.category.DEFAULT"/>
                                <category android:name="(你的包名,例如com.uubpay.xxx)"/>
                        </intent-filter>
                </activity>
                <service android:enabled="true" android:exported="false" android:name="cn.jpush.android.service.DownloadService"/>
                <receiver android:name="cn.jpush.android.service.AlarmReceiver"/>

                <!-- Required  . Enable it you can get statistics data with channel -->
                <meta-data android:name="JPUSH_CHANNEL" android:value="c_1908"/>
                <meta-data android:name="JPUSH_APPKEY" android:value="(你的AppKey)" />

        </application>
</manifest>                  

将如上代码中的包名和AppKey替换成你自己的(AppKey从Jpush的应用管理中得到)

9.运行项目;

10.在Jpush中推送消息,测试能否实现消息推送(确保测试时客户端联网),另外,如果通知栏下拉菜单图标不显示请换个手机品牌试一下,coolpad发现就不显示图标。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容