信鸽推送 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);// 必须要调用这句
}


发布了63 篇原创文章 · 获赞 28 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/kelindame/article/details/78039639
今日推荐