信鴿推送 Android 跳轉Activity
阿新 • • 發佈:2019-02-12
伺服器定義
android 在對應的Activity上{ "title ":"xxx", // 標題,必填 "content ":"xxxxxxxxx", // 內容,必填 "accept_time": //表示訊息將在哪些時間段允許推送給使用者,選填 [ { “start”:{“hour”:”13”,“min”:”00”}, ”end”: {“hour”:”14”,“min”:”00”} }, { “start”:{“hour”:”00”,”min”:”00”}, ”end”: {“hour”:”09”,“min”:”00”} } ], "n_id":0, //通知id,選填。若大於0,則會覆蓋先前彈出的相同id通知;若為0,展示本條通知且不影響其他通知;若為-1,將清除先前彈出的所有通知,僅展示本條通知。預設為0 "builder_id":0, // 本地通知樣式,必填 "ring":1, // 是否響鈴,0否,1是,下同。選填,預設1 "ring_raw":"ring", // 指定應用內的聲音(ring.mp3),選填 "vibrate":1, // 是否振動,選填,預設1 "lights":1// 是否呼吸燈,0否,1是,選填,預設1 "clearable":1, // 通知欄是否可清除,選填,預設1 "icon_type":0 //預設0,通知欄圖示是應用內圖示還是上傳圖示,0是應用內圖示,1是上傳圖示,選填 "icon_res":"xg",// 應用內圖示檔名(xg.png)或者下載圖示的url地址,選填 "style_id":1 //Web端設定是否覆蓋編號的通知樣式,預設1,0否,1是,選填 "small_icon":"xg"指定狀態列的小圖片(xg.png),選填 "action":{ // 動作,選填。預設為開啟app "action_type ": 1, // 動作型別,1開啟activity或app本身,2開啟瀏覽器,3開啟Intent "activity ": "xxx" "aty_attr ": // activity屬性,只針對action_type=1的情況 { "if":0, // 建立通知時,intent的屬性,如:intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); "pf":0, // PendingIntent的屬性,如:PendingIntent.FLAG_UPDATE_CURRENT } "browser": {"url": "xxxx ","confirm": 1}, // url:開啟的url,confirm是否需要使用者確認 “intent”: “xxx” }, "custom_content":{ // 使用者自定義的key-value,選填 "key1": "value1", "key2": "value2" } }
XGPushManager.onActivityStarted(this)獲取通知被點選及自定義key-value由原來的onStart()改為onResume()
@Override protected void onResume() {
super.onResume();
XGPushClickedResult click = XGPushManager.onActivityStarted(this);
if (click != null) {
// 判斷是否來自信鴿的開啟方式
// 根據實際情況處理...
// 如獲取自定義key-value
} }
同理,XGPushManager.onActivityStoped(this)由onStop()改為onPause()內呼叫,即:
@Override protected void onPause() {
super.onPause();
XGPushManager.onActivityStoped(this);
}
注意:
1)需要將onActivityStarted和onActivityStoped嵌入到所有可能被開啟的activity,建議所有activity都加上。
2)如果被開啟的activity啟動模式為SingleTop,SingleTask或SingleInstance,請根據以下在該activity過載onNewIntent方法:
@Override protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);// 必須要呼叫這句
}