容聯(lián)IM SDK在5.4.0之后開始支持華為推送。開發(fā)者需要根據(jù)華為官網(wǎng)文檔集成華為推送。 華為推送服務(wù)集成
去華為開發(fā)者聯(lián)盟注冊賬號并登錄。
在華為開發(fā)者后臺創(chuàng)建應(yīng)用,獲取APPID和APP SECRET,具體可以看下華為官方介紹:創(chuàng)建華為應(yīng)用
注冊完成后,需要在云通訊開發(fā)者后臺上傳推送證書,云通訊管理控制臺—>IM基礎(chǔ)功能配置—>推送證書,然后輸入你在華為開發(fā)者后臺創(chuàng)建的應(yīng)用的APPID、APP SECRET及包名;
作用說明:
(1) 向Push服務(wù)請求應(yīng)用的唯一標(biāo)示Token,觸發(fā)啟動Push服務(wù),token申請成功后,結(jié)果會通過回調(diào)傳給應(yīng)用。應(yīng)用接入Push后,必須調(diào)用該方法來獲取token。方法如下:(參考Demo中PustDemoActivity)
// 獲取客戶端AccessToken,獲取之前請先確定該應(yīng)用(包名)已經(jīng)在開發(fā)者聯(lián)盟上創(chuàng)建成功,并申請、審核通過Push權(quán)益 PushManager.requestToken(PustDemoActivity.this);
(2) pushToken申請成功后,會自動回調(diào)該方法,應(yīng)用可以通過該接口中 獲取token。本接口必須被實現(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,上報云通訊SDK。方法如下:(參考Demo中MyReceiver)
//上報Token ECDevice.reportHuaWeiToken(token);
//以下是華為的 //第三方相關(guān) :接收Push消息(注冊、Push消息、Push連接狀態(tài)、標(biāo)簽,LBS上報結(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" /> //可選,用于點擊通知欄或通知欄上的按鈕后觸發(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)簽、地理位置上報回應(yīng),不上報則不需要 <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組件運行在另外一個進程是為了防止Push服務(wù)異常而影響主業(yè)務(wù) //PushSDK:PushSDK接收外部請求事件入口 <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" />
文檔更新時間:2017年9月21日