我将firebase通知集成到了我的应用程序中,但我想发送一个通知,打开一个特定的活动,按照我的计划做,而不仅仅是打开应用程序.比如通知会在用户点击它时访问Google Play商店.
我看到了一个代码Firebase console: How to specify click_action for notifications,我使用但是初始化变量cls时出错了.我尝试通过定义cls = null来解决,以清除错误.它无法使用click_action打开我指定的活动
public class ClickActionHelper { public static voID startActivity(String classname, Bundle extras, Context context){ Class cls=null; try { cls = Class.forname(classname); }catch(ClassNotFoundException e){ //means you made a wrong input in firebase console } Intent i = new Intent(context, cls); i.putExtras(extras); context.startActivity(i); } }
我有什么问题吗?我如何让它工作?
解决方法:
如果要打开应用程序并执行特定 *** 作[在后台运行时],请在通知有效内容中设置click_action并将其映射到要启动的活动中的intent过滤器.例如,将click_action设置为OPEN_ACTIVITY_1以触发如下所示的intent过滤器:
正如FCM文档中所建议的那样,请求后端以这样的形式发送JsON数据,
{ "to":"some_device_token", "content_available": true, "notification": { "Title": "hello", "body": "yo", "click_action": "OPEN_ACTIVITY_1" // for intent filter in your activity },"data": {"extra":"juice"}}
并在您的mainfest文件中为您的活动添加intent-filter,如下所示
<intent-filter> <action androID:name="OPEN_ACTIVITY_1" /> <category androID:name="androID.intent.category.DEFAulT" /></intent-filter>
单击通知后,它将打开应用程序并直接进入您在click_action中定义的活动,在本例中为“OPEN_ACTIVTY_1”.在该活动中,您可以通过以下方式获取数据:
Bundle b = getIntent().getExtras();// add these lines of code to get data from notificationString someData = b.getString("someData");
请查看以下链接以获取更多帮助:
Firebase FCM notifications click_action payload
Firebase onMessageReceived not called when app in background
Firebase console: How to specify click_action for notifications
总结以上是内存溢出为你收集整理的android – 从firebase通知中打开一个特定的活动全部内容,希望文章能够帮你解决android – 从firebase通知中打开一个特定的活动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)