消息推送MobPush使用场景进行自定义设定说明
MobPush此功效仅仅是针对push的一些使用场景而举行自界说设定。好比,通知被点击的时间:
方式一、通过界面uri举行link跳转
首先现在Manifest文件中举行目的Activity的uri设置,如下:
activity
android:name=".LinkActivity">
android:host="com.mob.mobpush.link"
android:scheme="mlink" />
在Mob后台举行推送时,通过scheme://host的花样,例如mlink://com.mob.mobpush.link,如下位置填入:
设置好之后,推送就App就可以吸收到推送直接打开指定的Activity界面了。
方式二、当app显示在前台的时间,会触发MobPushReceiver的onNotifyMessageOpenedReceive要领,MobPushNotifyMessage参数则是回调的通知详情,可以凭据回调参数举行处置惩罚(不建议使用,当历程被杀掉的情形下,汇海应用后可能无法执行到回调要领,由于此时可能还执行到未添加监听的代码);
方式三、不管app历程是否被杀掉,当点击通知后拉起应用的汇海页面,会触发汇海Activity的OnCreate或OnNewIntent要领,通过getIntent要领拿到回传的Intent,遍历getExtras,可以拿到通知详情(建议使用);
凭据方式二,MobPush以两个场景为例子:
场景一、通过扩展参数实现页面的自界说跳转:
//自界说扩展字段的key,下发通知的时间,在扩展字段使用这个key
private final static String MOB_PUSH_DEMO_INTENT = "intent";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dealPushResponse(getIntent());
}
protected void onNewIntent(Intent intent) {
dealPushResponse(intent);
//需要挪用setIntent要领,否则后面获取到的getIntent都是上一次传的数据
setIntent(intent);
}
//OnCreate和OnNewIntent要领都要同时处置惩罚这个逻辑
private void dealPushResponse(Intent intent) {
Bundle bundle = null;
if (intent != null) {
bundle = intent.getExtras();
if (bundle != null) {
Set keySet = bundle.keySet();
for (String key : keySet) {
if (key.equals("msg")) {
MobPushNotifyMessage notifyMessage = (MobPushNotifyMessage) bundle.get(key);
HashMap params = notifyMessage.getExtrasMap();
if(params != null && params.containsKey(MOB_PUSH_DEMO_INTENT)){
//此处跳转到指定页面
openPage(params);
}
}
}
}
}
}
private void openPage(HashMap params){
Intent intent = new Intent(this, JumpActivity.class);
intent.putExtra("key1", "value1");
intent.putExtra("key2", "value2");
intent.putExtra("key3", "value3");
//如上Intent,在intent.toURI();之后获得的String,如下所示,可使用这个要领识别Intent传的参数,
//下发的参数可以根据下面的花样传,客户端吸收后再转成Intent,若添加action等其他参数,可自行打印看Srting结构体;
//#Intent;component=com.mob.demo.mobpush/.JumpActivity;S.key1=value1;S.key2=value2;S.key3=value3;end
String uri;
if(!TextUtils.isEmpty(params.get(MOB_PUSH_DEMO_INTENT))) {
uri = params.get(MOB_PUSH_DEMO_INTENT);
try {
startActivity(Intent.parseUri(uri, 0));
} catch (Throwable t){
t.printStackTrace();
}
}
}
场景二、通过扩展参数实现web界面的跳转:
代码同场景逐一样,跳转页面的要领改成跳转webview页面就可以,通过参数识别,拿到需要跳转的Url链接
private final static String APP软件开发
MOB_PUSH_DEMO_URL = "url";//OnCreate和OnNewIntent要领都要同时处置惩罚这个逻辑
private void dealPushResponse(Intent intent) {
Bundle bundle = null;
if (intent != null) {
bundle = intent.getExtras();
if (bundle != null) {
Set keySet = bundle.keySet();
for (String key : keySet) {
if (key.equals("msg")) {
MobPushNotifyMessage notifyMessage = (MobPushNotifyMessage) bundle.get(key);
HashMap params = notifyMessage.getExtrasMap();
if(params != null && params.containsKey(MOB_PUSH_DEMO_URL)){
//此处跳转到webview页面
openUrl(params);
}
}
}
}
}
}
private void openUrl(HashMap params){
“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
使用“扫一扫”即可将网页分享至朋友圈。