通知打开应用程序,单击OneSignal [英] Open application on notification click in OneSignal
本文介绍了通知打开应用程序,单击OneSignal的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在通过OneSignal
收到通知,但是我想在单击通知时打开应用程序
I am getting notification using this through OneSignal
, but I want to open the application when I click on notification
private static class ExampleNotificationOpenedHandler implements OneSignal.NotificationOpenedHandler {
@Override
public void notificationOpened(String message, JSONObject additionalData, boolean isActive) {
try {
if (additionalData != null) {
if (additionalData.has("actionSelected"))
Log.d("OneSignalExample", "OneSignal notification button with id " + additionalData.getString("actionSelected") + " pressed");
Log.d("OneSignalExample", "Full additionalData:\n" + additionalData.toString());
}
} catch (Throwable t) {
t.printStackTrace();
}
推荐答案
在ExampleNotificationOpenedHandler
中添加一个将上下文作为参数的构造函数
Add a constructor in ExampleNotificationOpenedHandler
that takes context as a parameter
private Context mContext;
public ExampleNotificationOpenedHandler(Context context) {
mContext = context;
}
使用ExampleNotificationOpenedHandler
构造函数在应用程序类内部使用上下文初始化OneSignal
Init OneSignal
with ExampleNotificationOpenedHandler
constructor with context inside application class
public void onCreate() {
super.onCreate();
OneSignal.startInit(this)
.setNotificationOpenedHandler((OneSignal.NotificationOpenedHandler)
new ExampleNotificationOpenedHandler(this))
.init();
}
准备意图并使用上下文开始您的活动
Prepare intent and start your activity using context
@Override
public void notificationOpened(OSNotificationOpenResult result) {
try {
if (additionalData != null) {
Intent intent = new Intent(mContext, DetailsActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("key", <additionalData to be sent>);
mContext.startActivity(intent);
}
} catch (Throwable t) {
t.printStackTrace();
}
这篇关于通知打开应用程序,单击OneSignal的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文