容聯(lián)IM SDK在5.4.0之后開(kāi)始支持華為推送。開(kāi)發(fā)者需要根據(jù)華為官網(wǎng)文檔集成華為推送。 華為推送服務(wù)集成
去華為開(kāi)發(fā)者聯(lián)盟注冊(cè)賬號(hào)并登錄。
在華為開(kāi)發(fā)者后臺(tái)創(chuàng)建應(yīng)用,獲取APPID和APP SECRET,具體可以看下華為官方介紹:創(chuàng)建華為應(yīng)用
注冊(cè)完成后,需要在云通訊開(kāi)發(fā)者后臺(tái)上傳推送證書(shū),云通訊管理控制臺(tái)—>IM基礎(chǔ)功能配置—>推送證書(shū),然后輸入你在華為開(kāi)發(fā)者后臺(tái)創(chuàng)建的應(yīng)用的APPID、APP SECRET及包名;
作用說(shuō)明:
(1) 向Push服務(wù)請(qǐng)求應(yīng)用的唯一標(biāo)示Token,觸發(fā)啟動(dòng)Push服務(wù),token申請(qǐng)成功后,結(jié)果會(huì)通過(guò)回調(diào)傳給應(yīng)用。應(yīng)用接入Push后,必須調(diào)用該方法來(lái)獲取token。方法如下:(參考Demo中PustDemoActivity)
// 獲取客戶端AccessToken,獲取之前請(qǐng)先確定該應(yīng)用(包名)已經(jīng)在開(kāi)發(fā)者聯(lián)盟上創(chuàng)建成功,并申請(qǐng)、審核通過(guò)Push權(quán)益 PushManager.requestToken(PustDemoActivity.this);
(2) pushToken申請(qǐng)成功后,會(huì)自動(dòng)回調(diào)該方法,應(yīng)用可以通過(guò)該接口中 獲取token。本接口必須被實(shí)現(xiàn)。方法如下:(參考Demo中MyReceiver)
@Override public void onToken(Context context, String token, Bundle extras){ String belongId = extras.getString("belongId"); String content = "獲取token和belongId成功,token = " + token + ",belongId = " + belongId; Log.d(PustDemoActivity.TAG, content); ECDevice.reportHuaWeiToken(token); showPushMessage(PustDemoActivity.RECEIVE_TOKEN_MSG, content); }
(3) 將獲取到的Token,上報(bào)云通訊SDK。方法如下:(參考Demo中MyReceiver)
//上報(bào)Token ECDevice.reportHuaWeiToken(token);
//以下是華為的 //第三方相關(guān) :接收Push消息(注冊(cè)、Push消息、Push連接狀態(tài)、標(biāo)簽,LBS上報(bào)結(jié)果)廣播 <receiver android:name=".ui.huawei.MyReceiver"> <intent-filter> //必選,用于接收token <action android:name="com.huawei.android.push.intent.REGISTRATION" /> //必選,用于接收消息 <action android:name="com.huawei.android.push.intent.RECEIVE" /> //可選,用于點(diǎn)擊通知欄或通知欄上的按鈕后觸發(fā)onEvent回調(diào) <action android:name="com.huawei.android.push.intent.CLICK" /> //可選,查看push通道是否連接,不查看則不需要 <action android:name="com.huawei.intent.action.PUSH_STATE" /> //可選,標(biāo)簽、地理位置上報(bào)回應(yīng),不上報(bào)則不需要 <action android:name="com.huawei.android.push.plugin.RESPONSE" /> </intent-filter> <meta-data android:name="CS_cloud_ablitity" android:value="云通訊" /> </receiver> //備注:Push相關(guān)的android組件需要添加到業(yè)務(wù)的AndroidManifest.xml, //Push相關(guān)android組件運(yùn)行在另外一個(gè)進(jìn)程是為了防止Push服務(wù)異常而影響主業(yè)務(wù) //PushSDK:PushSDK接收外部請(qǐng)求事件入口 <receiver android:name="com.huawei.android.pushagent.PushEventReceiver" android:process=":pushservice"> <intent-filter> <action android:name="com.huawei.android.push.intent.REFRESH_PUSH_CHANNEL" /> <action android:name="com.huawei.intent.action.PUSH" /> <action android:name="com.huawei.intent.action.PUSH_ON" /> <action android:name="com.huawei.android.push.PLUGIN" /> </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.huawei.android.pushagent.PushBootReceiver" android:process=":pushservice"> <intent-filter> <action android:name="com.huawei.android.push.intent.REGISTER" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> <meta-data android:name="CS_cloud_version" android:value="\u0032\u0037\u0030\u0035" /> </receiver> // PushSDK:Push服務(wù) <service android:name="com.huawei.android.pushagent.PushService" android:process=":pushservice" />
文檔更新時(shí)間:2017年9月21日