如何将通知的身体带到Webview

时间:2017-12-29 02:20:57

标签: android xamarin

我有一个Webview和 例如 : string url =" https://www.google.com&#34 ;; UrlLoad(URL); 在我的应用中显示Google,

好的,如果我收到通知并推送, Webview将更改页面。

就像字符串网址=通知的正文;

抱歉,我的英语不好。

感谢。

PS。我使用Xamarin

这是FCM接收

[服务]

   [IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]   
   class Firebasemessaging : FirebaseMessagingService
   {
    public override void OnMessageReceived(RemoteMessage message)
    {
        this.SendNotification(message.GetNotification().Body);
        Notification notifi = new 
    Notification(Resource.Drawable.pika,"Handbim");

    }

    private void SendNotification(string body)
    {
        var intent = new Intent(this, typeof(MainActivity));
        intent.AddFlags(ActivityFlags.ClearTop);
        var pendingIntent = PendingIntent.GetActivity(this, 0, intent, PendingIntentFlags.OneShot);
        var defaultsoundUri = RingtoneManager.GetDefaultUri(RingtoneType.Notification);
        var notif = new NotificationCompat.Builder(this)
            .SetContentTitle("handbim")
            .SetContentText(body)
            .SetAutoCancel(true)
            .SetSound(defaultsoundUri)
            .SetContentIntent(pendingIntent);

      var notificationManager = NotificationManager.FromContext(this);
        notificationManager.Notify(0,notif.Build());

    }
}

1 个答案:

答案 0 :(得分:0)

请使用OnNewIntent来实现目标。

1)在LaunchMode =Android.Content.PM.LaunchMode.SingleTop的属性中添加MainActivity,如下所示:

[Activity(Label = "StartStopService", MainLauncher = true,LaunchMode =Android.Content.PM.LaunchMode.SingleTop)]

2)在SendNotification方法中,添加以下行:

 intent.PutExtra("url", body);

因此,主体将通过意图传递给您的OnNewIntent方法。

3)覆盖OnNewIntent中的MaintActivity方法,如下所示:

protected override void OnNewIntent(Intent intent)
{
    base.OnNewIntent(intent);

    string str = intent.GetStringExtra("url");
    Toast.MakeText(this, str, ToastLength.Short).Show();
    web_view.LoadUrl(str);
}

注意:

web_view是全局变量