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

明星的jpush module android 版本用于用Titanium開發(fā)Android消息推送功能,使用步驟如下:

1.從github上下載titanium_module_jpush_android;
2.從項(xiàng)目中找到titanium_module_jpush_android/android/dist/com.mamashai.jpush-android-3.0.8.zip,解壓并將得到modules文件;
3.在需要消息推送的項(xiàng)目下新建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"));
}

//用戶點(diǎn)擊了推送
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后,在控制臺創(chuàng)建應(yīng)用,獲得AppKey超陆;

8.在tiapp.xml文件下的

<android>
</android>

內(nèi)鍵入如下代碼:


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

        <!-- Required  一些系統(tǒng)要求的權(quán)限张漂,如訪問網(wǎng)絡(luò)等-->
        <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 回調(diào)函數(shù)的intent-->
                                <action android:name="cn.jpush.android.intent.CONNECTION"/>
                                <!-- 接收網(wǎng)絡(luò)變化 連接/斷開 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的應(yīng)用管理中得到)

9.運(yùn)行項(xiàng)目趴梢;

10.在Jpush中推送消息漠畜,測試能否實(shí)現(xiàn)消息推送(確保測試時客戶端聯(lián)網(wǎng)),另外,如果通知欄下拉菜單圖標(biāo)不顯示請換個手機(jī)品牌試一下,coolpad發(fā)現(xiàn)就不顯示圖標(biāo)垢油。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盆驹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子滩愁,更是在濱河造成了極大的恐慌躯喇,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異廉丽,居然都是意外死亡倦微,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門正压,熙熙樓的掌柜王于貴愁眉苦臉地迎上來欣福,“玉大人,你說我怎么就攤上這事焦履⊥厝埃” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵嘉裤,是天一觀的道長郑临。 經(jīng)常有香客問我,道長屑宠,這世上最難降的妖魔是什么厢洞? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮典奉,結(jié)果婚禮上躺翻,老公的妹妹穿的比我還像新娘。我一直安慰自己卫玖,他們只是感情好公你,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著骇笔,像睡著了一般省店。 火紅的嫁衣襯著肌膚如雪嚣崭。 梳的紋絲不亂的頭發(fā)上笨触,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天芦劣,我揣著相機(jī)與錄音说榆,去河邊找鬼。 笑死串慰,一個胖子當(dāng)著我的面吹牛唱蒸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼古今,長吁一口氣:“原來是場噩夢啊……” “哼滔以!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起抵碟,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤坏匪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后唱歧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡颅崩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年沿后,在試婚紗的時候發(fā)現(xiàn)自己被綠了朽砰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡漆弄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出撼唾,到底是詐尸還是另有隱情哥蔚,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布渤愁,位于F島的核電站深夯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏他挎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一筹淫、第九天 我趴在偏房一處隱蔽的房頂上張望呢撞。 院中可真熱鬧,春花似錦殊霞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蜒什,卻和暖如春疤估,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铃拇。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工锚贱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拧廊。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓吧碾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親倦春。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容