Cis*_*tem 6 notifications android firebase
我将firebase通知集成到了我的应用程序中,但我想发送一个通知,打开一个特定的活动,按照我的计划做,而不仅仅是打开应用程序.比如通知会在用户点击它时访问Google Play商店.
我看到了代码Firebase控制台:如何为我使用的通知指定click_action但是初始化变量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);
}
}
Run Code Online (Sandbox Code Playgroud)
我有什么问题吗?我如何让它工作?
Ris*_*esh 14
如果要打开应用程序并执行特定操作[在后台运行时],请在通知有效内容中设置click_action并将其映射到要启动的活动中的意图过滤器.例如,将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"
}
}
Run Code Online (Sandbox Code Playgroud)
并在您的mainfest文件中为您的活动添加intent-filter,如下所示
<intent-filter>
<action android:name="OPEN_ACTIVITY_1" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
单击通知后,它将打开应用程序并直接进入您在click_action中定义的活动,在本例中为"OPEN_ACTIVTY_1".在该活动中,您可以通过以下方式获取数据:
Bundle b = getIntent().getExtras();// add these lines of code to get data from notification
String someData = b.getString("someData");
Run Code Online (Sandbox Code Playgroud)
请查看以下链接以获取更多帮助:
Firebase FCM通知click_action有效内容
当应用程序在后台时,不会调用Firebase onMessageReceived
Firebase控制台:如何为通知指定click_action
| 归档时间: |
|
| 查看次数: |
11402 次 |
| 最近记录: |