1. 程式人生 > >信鴿推送 Android 跳轉Activity

信鴿推送 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"
      }
}
android 在對應的Activity上

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);// 必須要呼叫這句
}