[英]How can I call fragmentactivity in mainactivity (AppCompactActivity)
[英]When I clicked notification run in background it's always call MainActivity , How I can call my WebVIew
当我单击在后台运行的通知时,它总是调用 MainActivity ,当我在应用程序中单击时,我从 Firebase Cloud Messing 发送了 url,它可以打开我创建的 WebView,但是如果我在关闭应用程序时单击它,它总是调用 MainActivity。 没有任何错误,我认为它不会调用任何 if-clause 。 请帮助和抱歉我的英语。
public class MyFirebaseMessagingService extends FirebaseMessagingService {
public MyFirebaseMessagingService() {
super();
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (remoteMessage.getData().size() <= 0){
String title = remoteMessage.getNotification().getTitle();
String body = remoteMessage.getNotification().getBody();
MessageHelper.displayMessage(getApplicationContext(), title, body);
}
if(remoteMessage.getData().size() > 0){
String title = remoteMessage.getNotification().getTitle();
String body = remoteMessage.getNotification().getBody();
String url = remoteMessage.getData().get("url");
MessageHelper.displayNotification(getApplicationContext(), title, body, url);
}
}
}
公共类 MessageHelper {
public static void displayMessage(Context context, String title, String body){
Intent intent = new Intent(context, NewsFragment.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(
context,
0,
intent,
PendingIntent.FLAG_UPDATE_CURRENT
);
NotificationCompat.Builder builder =
new NotificationCompat.Builder(context, MainActivity.CHANNEL_ID)
.setSmallIcon(R.drawable.ic_notifications)
.setContentTitle(title)
.setContentText(body)
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setContentIntent(pendingIntent)
.setAutoCancel(true);
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context);
notificationManagerCompat.notify(0, builder.build());
}
public static void displayNotification(Context context, String title, String body, String url){
Intent intent = new Intent(context, NewsWebView.class);
intent.putExtra("id", url);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder =
new NotificationCompat.Builder(context, MainActivity.CHANNEL_ID)
.setSmallIcon(R.drawable.ic_notifications)
.setWhen(System.currentTimeMillis())
.setContentTitle(title)
.setContentText(body)
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setContentIntent(contentIntent)
.setAutoCancel(true);
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context);
notificationManagerCompat.notify(1 , builder.build());
}
}
`
你必须阅读传入的意图OnCreate()
Intent read_int = getIntent();
Log.d("INTENT", read_int.toUri(0));
然后你可以分解传入的 Uri 请求:
String uri = read_int.getStringExtra("uri"); // your data sent over FCM
然后条件,你想启动什么活动:
if(uri != null){
Intent openWV = new Intent(CurrentActivity.this, MyWebViewActivity.class);
openWV.putExtra("open_url", uri); // optional parameters
CurrentActivity.this.startActivity(openWV);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.