信鸽推送 Android 跳转Activity

来源:互联网 发布:编程职业培训学校 编辑:程序博客网 时间:2024/05/18 09:23

服务器定义

{"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);// 必须要调用这句}


原创粉丝点击