【友盟+】开发者社区

消息推送-打开通知消息进入特定Activity

menyf 发表于 2017-7-5 14:56:09 |

menyf
menyf 发表于 2014-9-19 16:43:31 | 显示全部楼层 |阅读模式
项目使用通知消息,现在后台配置的通知消息打开方式是“打开APP”,要实现点击通知消息后打开APP的特定activity,是否应当自定义一个Application,在其onCreate( )中调用UmengNotificationClickHandler的public void dealWithCustomAction(Context context, UMessage msg)方法




上一篇:优质游戏“养成”记——利用精准推送提升玩家活跃度
下一篇:友盟消息推送需要打开app嘛


push更新
push更新 发表于 2014-9-22 13:15:32 | 显示全部楼层
只要网站上填写了,打开指定activity就可以,打开activity是友盟自带实现的功能,并不需要加其他代码, QQ图片20140922131022.png

szufight
szufight 发表于 2014-9-22 16:06:34 | 显示全部楼层
现在的问题是,要根据传递来的不同通知消息打开不同的activity或url,所以项目在友盟上配置的是打开APP,要求在前端获取自定义的参数,并根据参数来判断跳转。该怎么做?是要自定义一个Application并在其中重写launchApp()吗?

push更新
push更新 发表于 2014-9-22 16:37:16 | 显示全部楼层
你要获取参数的话 只能通过自定义打开行为,重写dealWithCustomAction

在消息推送SDK里,有一个类UmengNotificationClickHandler,负责处理消息的点击事件。 该类主要有四个成员方法:

public void launchApp(Context context, UMessage msg);
public void openUrl(Context context, UMessage msg);
public void openActivity(Context context, UMessage msg);
public void dealWithCustomAction(Context context, UMessage msg);
这四个方法,分别对应于四种打开方式。其中,launchApp、openUrl、openActivity这三个方法已经由消息推送SDK完成,而dealWithCustomAction则只是一个空的方法。 若开发者需要处理自定义行为,则可以重写方法dealWithCustomAction();其中自定义行为的内容,存放在UMessage.custom中。下面是处理自定义行为的代码:

/**
* 该Handler是在BroadcastReceiver中被调用,故
* 如果需启动Activity,需添加Intent.FLAG_ACTIVITY_NEW_TASK
* */
UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler(){
    @Override
    public void dealWithCustomAction(Context context, UMessage msg) {
        Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
    }
};
mPushAgent.setNotificationClickHandler(notificationClickHandler);
注意
以上代码需在 Application 的onCreate() 中调用使用以下接口,而不是在Activity 中调用。如果在Activity中调用此接口,若应用进程关闭, 则设置的接口会无效。 请参考demo 应用代码。
该Handler是在BroadcastReceiver中被调用。因此若需启动Activity,需为Intent添加Flag:Intent.FLAG_ACTIVITY_NEW_TASK,否则无法启动Activity。
若开发者想自己处理打开网页、打开APP、打开Activity,可重写相应的函数来实现。

赶快加油吧
赶快加油吧 发表于 2014-11-28 00:48:38 | 显示全部楼层
你好,官方下载的sdk是jar包,已经编译好了的,我将如何修改UmengNotificationClickHandler 类?谢谢

赶快加油吧
赶快加油吧 发表于 2014-11-28 02:15:36 | 显示全部楼层
好像明白了,谢谢,不用回答如上问题了,抱歉。

点评

解释一下好吗UmengNotificationClickHandler 这个方法就没有出现回调,  详情 回复 发表于 2014-12-12 11:22

雨打排行
雨打排行 发表于 2014-12-12 11:22:52 | 显示全部楼层
赶快加油吧 发表于 2014-11-28 02:15
好像明白了,谢谢,不用回答如上问题了,抱歉。

解释一下好吗UmengNotificationClickHandler 这个方法就没有出现回调

push更新
push更新 发表于 2014-12-12 13:09:10 | 显示全部楼层
注意
以上代码需在 Application 的onCreate() 中调用使用以下接口,而不是在Activity 中调用。如果在Activity中调用此接口,若应用进程关闭, 则设置的接口会无效。 请参考demo 应用代码。
该Handler是在BroadcastReceiver中被调用。因此若需启动Activity,需为Intent添加Flag:Intent.FLAG_ACTIVITY_NEW_TASK,否则无法启动Activity。
若开发者想自己处理打开网页、打开APP、打开Activity,可重写相应的函数来实现。

jinxin
jinxin 发表于 2015-1-21 17:45:19 | 显示全部楼层
push更新 发表于 2014-12-12 13:09
注意
以上代码需在 Application 的onCreate() 中调用使用以下接口,而不是在Activity 中调用。如果在Activi ...

你好,我采用的是自定义推送消息,已在application中实现了UmengNotificationClickHandler ,但是为什么我点击通知栏的通知,应用缺不打开呢,就算应用打开了,自定义的消息处理方法也执行了也没有跳转到指定的Activity

691075524
691075524 发表于 2015-6-13 19:50:47 | 显示全部楼层
push更新 发表于 2014-9-22 16:37
你要获取参数的话 只能通过自定义打开行为,重写dealWithCustomAction

在消息推送SDK里,有一个类UmengNo ...

如果是后台已经填好跳转activity路径的推送消息发给我  android程序还需要处理点击跳转到后台发过来的那个activity吗?

开发员
开发员 发表于 2015-8-9 13:01:14 | 显示全部楼层
push更新 发表于 2014-9-22 16:37
你要获取参数的话 只能通过自定义打开行为,重写dealWithCustomAction

在消息推送SDK里,有一个类UmengNo ...

你好,这个我要是想要进入特定activity 然后也需要带入自定义参数给特定activity 怎么做呢?

OvenChou
OvenChou 发表于 2015-10-28 10:40:03 | 显示全部楼层
jinxin 发表于 2015-1-21 17:45
你好,我采用的是自定义推送消息,已在application中实现了UmengNotificationClickHandler ,但是为什么 ...

我遇到 的情况也差不多 你有解决么?? 如何解决的呢????

joker43
joker43 发表于 2016-3-17 16:54:10 | 显示全部楼层
开发员 发表于 2015-8-9 13:01
你好,这个我要是想要进入特定activity 然后也需要带入自定义参数给特定activity 怎么做呢? ...

要进入特定activity 并带入自定义参数给这个特定activity,怎么做?同求

leonx
leonx 发表于 2016-4-7 23:17:37 | 显示全部楼层
我遇到的问题更诡异。我发现我这里只有在选择打开应用方式时,手机才会收到推送。如果我添加了自定义参数就收不到通知。

aijiao
aijiao 发表于 2016-6-13 14:14:01 | 显示全部楼层
赶快加油吧 发表于 2014-11-28 00:48
你好,官方下载的sdk是jar包,已经编译好了的,我将如何修改UmengNotificationClickHandler 类?谢谢 ...

UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler(){
    @Override
    public void dealWithCustomAction(Context context, UMessage msg) {
        Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
    }
};

OO奶糖
OO奶糖 发表于 2016-6-21 10:28:37 | 显示全部楼层
push更新 发表于 2014-9-22 13:15
只要网站上填写了,打开指定activity就可以,打开activity是友盟自带实现的功能,并不需要加其他代码,
...

请问这个后续动作的选项在哪啊?木有找到。求大神解答~(app)

context
context 发表于 2016-9-19 20:04:03 | 显示全部楼层
为什么? /**
         * 自定义行为的回调处理
         * UmengNotificationClickHandler是在BroadcastReceiver中被调用,故
         * 如果需启动Activity,需添加Intent.FLAG_ACTIVITY_NEW_TASK
         * */
        UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler() {
            @Override
            public void dealWithCustomAction(Context context, UMessage msg) {
                Log.i("data","<<<<<<<<<<<<<<<<<<<<<<<<<"+msg.text);
               Intent intent=new Intent(App.this, NotificationUI.class);
                /*intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);*/
                intent.putExtra("text",msg.text);
                intent.putExtra("title",msg.title);
                intent.putExtra("img",msg.img);
                startActivity(intent);
            }
        };
        //使用自定义的NotificationHandler,来结合友盟统计处理消息通知
        mPushAgent.setNotificationClickHandler(notificationClickHandler);
msg得不到数据,直接没有用。感觉这个方法就没执行一样

Tony123
Tony123 发表于 2016-10-24 16:31:28 | 显示全部楼层
context 发表于 2016-9-19 20:04
为什么? /**
         * 自定义行为的回调处理
         * UmengNotificationClickHandler是在BroadcastRe ...

请问你解决了吗


xicong
xicong 发表于 2017-3-16 12:14:02 | 显示全部楼层
我也遇到这个问题了,UmengNotificationClickHandler 这里面的函数一个都没有回调,不知道什么情况,那个大神最近有遇到啊,求解,最新版的3.1.0a

boboyuwu
boboyuwu 发表于 2017-7-5 14:56:09 | 显示全部楼层
xicong 发表于 2017-3-16 12:14
我也遇到这个问题了,UmengNotificationClickHandler 这里面的函数一个都没有回调,不知道什么情况,那个大 ...

大神解决了吗
您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

精彩推荐

CNZZ又出问题了?
又504了,每天出问题、
春风十里,不如一起看数据的你!
今夏虐剧之首“春风十里不如你”终于虐到尽头了! “春风迷”一边被虐一边又享受着追剧的快乐。 那么“春风
关于今日不能详细记录pv的反馈
2017年10月16日早上十一点 我司网站(www.xqnjy.cn)后台突然不能分析时段访问,和pv uv的统计 访问明细能正

关注我们

新浪微博
微信

欢迎关注友盟官方微博微信!

在线客服
返回顶部 返回列表