整合華為推送,華為手機App在活動點開推送重啟App並且未進入到推送落地頁
阿新 • • 發佈:2019-02-19
問題描述:
1、為了提高推送的到達率,在有極光推送的基礎上,App又集成了小米、魅族、華為三家自己的推送服務。
2、華為手機在App在前臺時候,點選推送App重啟,並且推送沒有進入到對應的落地頁。(又是你,華為!)
解決問題:
後臺傳送推送時頁面,會有如圖內容:
解決步驟:
1、首先在AndroidManifest.xml檔案中點選推送跳轉的Activity新增如下程式碼:
- host內容可以自定義
- scheme內容可以自定義
2、之後在Activity當中打印出Intent內容,程式碼如下:<!-- 需要跳轉到的頁面--> <activity android:name=".demo.activity.PushDemoActivity" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <data android:host="com.myhost.push" android:path="/push_detail" android:scheme="myscheme"/> </intent-filter> </activity>
得到列印的intentUri的內容大致如下:Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("myscheme://com.myhost.push/push_detail?message=what")); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); String intentUri = intent.toUri(Intent.URI_INTENT_SCHEME); Log.e("====","action是:" + intentUri);
intent://com.myhost.push/push_detailmessage=what#Intent;scheme=myscheme;action=android.intent.action.VIEW;launchFlags=0x10000000;end
將這個內容複製到上圖【自定義動作】輸入框內容。
備註:
【host】、【scheme】內容都可以自定義。
華為推送相關問題:
- 這裡說幾點關於華為推送的問題。
1、華為推送的初始化依賴於Activity,所以不能在Application當中初始化。
2、華為推送服務當中的【透傳訊息】是可能會丟失的,例如:App被殺死後,透傳訊息有時接收不到,如果重啟App,透傳訊息依然接收不到。所以不推薦使用【透傳】實現重要的功能。