三步集成極光推送

? ? 有些朋友覺得集成這些東西是很繁瑣很麻煩的一件事情,有些人覺得不就是看看文檔照著來一遍就OK的事情嗎?我覺得一篇詳細(xì)而簡潔的集成步驟才是入門人最需要的。

??一、添加資源

? ? 這里我自動(dòng)跳過了申請(qǐng)賬號(hào)的步驟:

首先,下載一份官方demo

然后,打開demo,將里面需要的資源CV到我們的項(xiàng)目中

1.解壓縮 jpush-android--3.x.x-release.zip 集成壓縮包。

2.復(fù)制 libs/jcore-android-1.x.x.jar 到工程 libs/ 目錄下。

3.復(fù)制 libs/jpush-android-3.x.x.jar 到工程 libs/ 目錄下。

4.復(fù)制 libs/(cpu-type)/libjcore1xy.so 到你的工程中存放對(duì)應(yīng)cpu類型的目錄下。

5.復(fù)制 res/ 中drawable-hdpi, layout, values文件夾中的資源文件到你的工程中 res/ 對(duì)應(yīng)同名的目錄下。

說明 1:若沒有res/drawable-xxxx/jpush_notification_icon這個(gè)資源默認(rèn)使用應(yīng)用圖標(biāo)作為通知icon,在5.0以上系統(tǒng)將應(yīng)用圖標(biāo)作為statusbar icon可能顯示不正常,用戶可定義沒有陰影和漸變色的icon替換這個(gè)文件,文件名不要變。

說明 2:使用android studio的開發(fā)者,如果使用jniLibs文件夾導(dǎo)入so文件,則僅需將所有cpu類型的文件夾拷進(jìn)去;如果將so文件添加在module的libs文件夾下,注意在module的gradle配置中添加一下配置:

android {

......

sourceSets {

main {

jniLibs.srcDirs = ['libs']

......

}

......

}

......

}

二、配置 AndroidManifest.xml

這里無論你是根據(jù)demo的里的Manifest也好還是官方文檔也好,代碼一定要注釋一定要寫好,以免東西太多,以后你自己都不知道那是哪了

付上極光文檔的鏈接:極光推送文檔

1
2
3
4
5
6
7
8
9

這里注意在圖7和圖8中涉及到兩個(gè)不同的Receiver

一個(gè)是接收普通通知以及富媒體的Receiver,一個(gè)是自定義別名標(biāo)簽的Receiver,

這里的這兩個(gè)receiver,都可以在官方demo中對(duì)應(yīng)找到,直接復(fù)制,

將每個(gè)action對(duì)應(yīng)邏輯,添加自己項(xiàng)目所需要的邏輯即可

在官方文檔的“進(jìn)階教程”中的通知VS自定義中,可以直接看到示例代碼,都是一樣的

三、API及參數(shù)

在項(xiàng)目的Appliaction中調(diào)用,init 只需要在應(yīng)用程序啟動(dòng)時(shí)調(diào)用一次該 API 即可。不明白可以參考官方demo

JPushInterface.setDebugMode(true);【項(xiàng)目上線要把調(diào)式模式改為false】

JPushInterface.init(this);

初始化推送服務(wù):public static void init(Context context);【這個(gè)API就是上面說的初始化的調(diào)用】

停止推送服務(wù):public static void stopPush(Context context);

恢復(fù)推送服務(wù):public static void resumePush(Context context);

判斷推送服務(wù)是否已經(jīng)被停止public static boolean isPushStopped(Context context);

其他的API可以在官方文檔中的“SDKAPI”中全部查看,這里不一一列舉了

參數(shù):

對(duì)于極光推送過來的消息,所對(duì)應(yīng)的參數(shù)為哪些?

1.全局唯一ID:

Bundle bundle = intent.getExtras();

String title = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);

2.保存服務(wù)器推送下來的消息的標(biāo)題。對(duì)應(yīng) API 消息內(nèi)容的 title 字段。Portal 推送消息界上不作展示

Bundle bundle = intent.getExtras();

String title = bundle.getString(JPushInterface.EXTRA_TITLE);

3.保存服務(wù)器推送下來的消息內(nèi)容。對(duì)應(yīng) API 消息內(nèi)容的 message 字段。對(duì)應(yīng) Portal 推送消息界面上的"自定義消息內(nèi)容”字段。

Bundle bundle = intent.getExtras();

String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);

4.附加字段:

Bundle bundle = intent.getExtras();

String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);

5.唯一標(biāo)識(shí)消息的ID,用于統(tǒng)計(jì)上報(bào):

Bundle bundle = intent.getExtras();

String file = bundle.getString(JPushInterface.EXTRA_MSG_ID);

6.推送通知界面上的“通知標(biāo)題”字段:

Bundle bundle = intent.getExtras();

String title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE);

7.推送通知界面上的“通知內(nèi)容”字段:

Bundle bundle = intent.getExtras();

String content = bundle.getString(JPushInterface.EXTRA_ALERT);

8.富媒體通知推送下載的HTML的文件路徑,用于展現(xiàn)WebView:

Bundle bundle = intent.getExtras();

String fileHtml = bundle.getString(JPushInterface.EXTRA_RICHPUSH_HTML_PATH);

9.富媒體通知推送下載的圖片資源的文件名,多個(gè)文件名用 “,” 分開。 與 “JPushInterface.EXTRA_RICHPUSH_HTML_PATH” 位于同一個(gè)路徑:

Bundle bundle = intent.getExtras();

String fileStr = bundle.getString(JPushInterface.EXTRA_RICHPUSH_HTML_RES);

String[] fileNames = fileStr.split(",");


總結(jié):至此,我們常用的步驟就這么多了,需要更多的豐富內(nèi)容,可以仔細(xì)的去再讀一遍官方的文檔

1、導(dǎo)入資源,配置Manifest

2、添加廣播,可以copy官方文檔實(shí)例代碼,也可以copy官方demo

3、根據(jù)API初始化極光推送,在廣播對(duì)應(yīng)的action中,獲取所需要的參數(shù)字段

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容