推送MobPush-API說明

1. 消息監(jiān)聽接口

MobPushReceiver:消息監(jiān)聽接口(包含接收自定義消息、通知消息伟骨、通知欄點擊事件燃异、別名和標(biāo)簽變更操作等)

MobPush.addPushReceiver(MobPushReceiver

receiver): 設(shè)置消息監(jiān)聽

MobPush.removePushReceiver(MobPushReceiver

receiver): 移除消息監(jiān)聽

2. 推送開關(guān)控制接口

MobPush.stopPush():停止推送(停止后將不會收到推送消息,僅可通過restartPush重新打開)

MobPush.restartPush():重新打開推送服務(wù)

MobPush.isPushStopped():判斷推送服務(wù)是否已經(jīng)停止

3. 推送選項接口

MobPush.setSilenceTime(int

startHour, int startMinute, int endHour, int endMinute): 設(shè)置通知靜音時段(開始時間小時和分鐘逛腿、結(jié)束時間小時和分鐘)

MobPush.setCustomNotification(MobPushCustomNotification

customNotification): 設(shè)置自定義通知樣式

4. 業(yè)務(wù)接口

MobPush.getRegistrationId(MobPushCallback<String>

callback):獲取注冊id(可與用戶id綁定,實現(xiàn)向指定用戶推送消息)

別名操作:(同時只能設(shè)置一個別名碘举,可用來標(biāo)識一個用戶)

MobPush.setAlias(String

alias):設(shè)置別名

MobPush.getAlias():獲取當(dāng)前設(shè)置的別名

MobPush.deleteAlias():刪除別名

標(biāo)簽操作:(同時可設(shè)置多個標(biāo)簽雕凹,可用于多用戶訂閱標(biāo)簽的方式政冻,批量推送消息)

MobPush.addTags(String[]

tags):添加標(biāo)簽

MobPush.getTags():獲取所有已添加的標(biāo)簽

MobPush.deleteTags(String[]

tags):刪除標(biāo)簽

MobPush.cleanTags():清除所有已添加的標(biāo)簽

MobPushCustomeMessage:自定義消息實體類

MobPushNotifyMessage:通知消息實體類

5. 本地通知

MobPush.addLocalNotification(MobPushLocalNotification

notification):添加本地通知

MobPush.removeLocalNotification(int

notificationId):移除本地通知

MobPush.clearLocalNotifications():清空本地通知

MobPushLocalNotification:本地通知消息實體類明场,繼承MobPushNotifyMessage

6. API錯誤碼

API返回的錯誤碼說明如下:(詳見MobPushErrorCode.java說明)

-1? 網(wǎng)絡(luò)請求失敗

-2? 請求錯誤

功能自定義和擴(kuò)展

前言:此功能僅僅是針對push的一些使用場景而進(jìn)行自定義設(shè)定。比如逼泣,通知被點擊的時候:

方式一舟舒、通過界面uri進(jìn)行l(wèi)ink跳轉(zhuǎn)

首先現(xiàn)在Manifest文件中進(jìn)行目標(biāo)Activity的uri設(shè)置,如下:

activity

? ? android:name=".LinkActivity">

? ? <intent-filter>

? ? ? ? <action android:name="android.intent.action.VIEW" />

? ? ? ? <category android:name="android.intent.category.DEFAULT" />

? ? ? ? <data

? ? ? ? ? ? android:host="com.mob.mobpush.link"

? ? ? ? ? ? android:scheme="mlink" />

? ? </intent-filter>

</activity>

在Mob后臺進(jìn)行推送時氏仗,通過scheme://host的格式夺鲜,例如mlink://com.mob.mobpush.link,如下位置填入:


配置好之后慷蠕,推送就App就可以接收到推送直接打開指定的Activity界面了食呻。

方式二、當(dāng)app顯示在前臺的時候浪感,會觸發(fā)MobPushReceiver的onNotifyMessageOpenedReceive方法饼问,MobPushNotifyMessage參數(shù)則是回調(diào)的通知詳情,可以根據(jù)回調(diào)參數(shù)進(jìn)行處理(不建議使用峻堰,當(dāng)進(jìn)程被殺掉的情況下,啟動應(yīng)用后可能無法執(zhí)行到回調(diào)方法旦万,因為此時可能還執(zhí)行到未添加監(jiān)聽的代碼)镶蹋;

方式三、不管app進(jìn)程是否被殺掉淆两,當(dāng)點擊通知后拉起應(yīng)用的啟動頁面拂酣,會觸發(fā)啟動Activity的OnCreate或OnNewIntent方法,通過getIntent方法拿到回傳的Intent剑勾,遍歷getExtras赵颅,可以拿到通知詳情(建議使用);

根據(jù)方式二饺谬,MobPush以兩個場景為例子:

場景一商蕴、通過擴(kuò)展參數(shù)實現(xiàn)頁面的自定義跳轉(zhuǎn):

//自定義擴(kuò)展字段的key,下發(fā)通知的時候绪商,在擴(kuò)展字段使用這個key

private final static String MOB_PUSH_DEMO_INTENT = "intent";


protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

dealPushResponse(getIntent());

}


protected void onNewIntent(Intent intent) {

dealPushResponse(intent);

//需要調(diào)用setIntent方法格郁,不然后面獲取到的getIntent都是上一次傳的數(shù)據(jù)

setIntent(intent);

}



//OnCreate和OnNewIntent方法都要同時處理這個邏輯

private void dealPushResponse(Intent intent) {

? ?Bundle bundle = null;

? ?if (intent != null) {

? ? ? bundle = intent.getExtras();

? ? ? if (bundle != null) {

? ? ? ? ?Set<String> keySet = bundle.keySet();

? ? ? ? ?for (String key : keySet) {

? ? ? ? ? ? if (key.equals("msg")) {

? ? ? ? ? ? ? ?MobPushNotifyMessage notifyMessage = (MobPushNotifyMessage) bundle.get(key);

? ? ? ? ? ? ? ?HashMap<String, String> params = notifyMessage.getExtrasMap();

? ? ? ? ? ? ? ?if(params != null && params.containsKey(MOB_PUSH_DEMO_INTENT)){

? ? ? ? ? ? ? ? ? //此處跳轉(zhuǎn)到指定頁面

? ? ? ? ? ? ? ? ? openPage(params);

? ? ? ? ? ? ? ?}

? ? ? ? ? ? }

? ? ? ? ?}

? ? ? }

? ?}

}


private void openPage(HashMap<String, String> params){

Intent intent = new Intent(this, JumpActivity.class);

intent.putExtra("key1", "value1");

intent.putExtra("key2", "value2");

intent.putExtra("key3", "value3");

//如上Intent例书,在intent.toURI();之后得到的String,如下所示决采,可利用這個方法識別Intent傳的參數(shù),

//下發(fā)的參數(shù)可以按照下面的格式傳拇厢,客戶端接收后再轉(zhuǎn)成Intent,若添加action等其他參數(shù),可自行打印看Srting結(jié)構(gòu)體访敌;

//#Intent;component=com.mob.demo.mobpush/.JumpActivity;S.key1=value1;S.key2=value2;S.key3=value3;end


String uri;

if(!TextUtils.isEmpty(params.get(MOB_PUSH_DEMO_INTENT))) {

uri = params.get(MOB_PUSH_DEMO_INTENT);

try {

startActivity(Intent.parseUri(uri, 0));

} catch (Throwable t){

t.printStackTrace();

}

}

}


場景二衣盾、通過擴(kuò)展參數(shù)實現(xiàn)web界面的跳轉(zhuǎn):

代碼同場景一一樣势决,跳轉(zhuǎn)頁面的方法改成跳轉(zhuǎn)webview頁面就可以,通過參數(shù)識別徽龟,拿到需要跳轉(zhuǎn)的Url鏈接

private final static String MOB_PUSH_DEMO_URL = "url";


//OnCreate和OnNewIntent方法都要同時處理這個邏輯

private void dealPushResponse(Intent intent) {

? ?Bundle bundle = null;

? ?if (intent != null) {

? ? ? bundle = intent.getExtras();

? ? ? if (bundle != null) {

? ? ? ? ?Set<String> keySet = bundle.keySet();

? ? ? ? ?for (String key : keySet) {

? ? ? ? ? ? if (key.equals("msg")) {

? ? ? ? ? ? ? ?MobPushNotifyMessage notifyMessage = (MobPushNotifyMessage) bundle.get(key);

? ? ? ? ? ? ? ?HashMap<String, String> params = notifyMessage.getExtrasMap();

? ? ? ? ? ? ? ?if(params != null && params.containsKey(MOB_PUSH_DEMO_URL)){

? ? ? ? ? ? ? ? ? //此處跳轉(zhuǎn)到webview頁面

? ? ? ? ? ? ? ? ? openUrl(params);

? ? ? ? ? ? ? ?}

? ? ? ? ? ? }

? ? ? ? ?}

? ? ? }

? ?}

}


private void openUrl(HashMap<String, String> params){

? ?String url;

? ?if(!TextUtils.isEmpty(params.get(MOB_PUSH_DEMO_URL))) {

? ? ? url = params.get(MOB_PUSH_DEMO_URL);

? ?} else {

? ? ? url = "http://m.mob.com";

? ?}

? ?if(!url.startsWith("http://") && !url.startsWith("https://")){

? ? ? url = "http://" + url;

? ?}

? ?System.out.println("url:" + url);

? ?//以下代碼為開發(fā)者自定義跳轉(zhuǎn)webview頁面据悔,粘貼使用會找不到相關(guān)類

? ?WebViewPage webViewPage = new WebViewPage();

? ?webViewPage.setJumpUrl(url);

? ?webViewPage.show(this, null);

}


上面兩個場景的使用示例代碼极颓,可以參考官方demo

https://github.com/MobClub/MobPush-for-Android

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末群嗤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子骇径,更是在濱河造成了極大的恐慌者春,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晰筛,死亡現(xiàn)場離奇詭異拴袭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)怜瞒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門吴汪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浇坐,你說我怎么就攤上這事∏苊常” “怎么了觉渴?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長座韵。 經(jīng)常有香客問我踢京,道長,這世上最難降的妖魔是什么黔帕? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任蹈丸,我火速辦了婚禮,結(jié)果婚禮上奋岁,老公的妹妹穿的比我還像新娘荸百。我一直安慰自己,他們只是感情好虾攻,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布更鲁。 她就那樣靜靜地躺著,像睡著了一般漂坏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谷徙,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天驯绎,我揣著相機(jī)與錄音,去河邊找鬼屈尼。 笑死拴孤,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鞭执。 我是一名探鬼主播芒粹,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼囤热!你這毒婦竟也來了获三?” 一聲冷哼從身側(cè)響起锨苏,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贞谓,沒想到半個月后葵诈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡理疙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年窖贤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赃梧。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡授嘀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹄皱,到底是詐尸還是另有隱情,我是刑警寧澤焕济,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布晴弃,位于F島的核電站上鞠,受9級特大地震影響芯丧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谴咸,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一骗露、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧珊随,春花似錦柿隙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽不恭。三九已至财饥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钥星,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工贯莺, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留缕探,地道東北人还蹲。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像潭兽,于是被迫代替她去往敵國和親斗遏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

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