【问题标题】:How to get a Notification's BODY to Webview如何将通知的正文获取到 Webview
【发布时间】:2017-12-29 02:20:56
【问题描述】:

我有一个 Webview 和 例如 : 字符串 url = "https://www.google.com"; 网址加载(网址); 在我的应用中显示 Google,

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

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

对不起,我的英语不好。

谢谢。

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());

    }
}

【问题讨论】:

  • 你的意思是你会收到FCM的通知,然后你会得到通知的正文,然后你会在WebView上显示正文的内容?您的问题对我们来说不是很清楚。
  • 是的,所以正文的内容是一个 URL

标签: android xamarin


【解决方案1】:

请使用OnNewIntent 来实现您的目标。

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

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

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

 intent.PutExtra("url", body);

因此,正文将按意图传递给您的 OnNewIntent 方法。

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

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是全局变量

【讨论】:

  • 谢谢您,先生。但我现在放弃了使用 Xamarin 和 Kotlin。再次感谢。
  • Kotlin 和 Xamarin,它们都可以用于开发 Android 应用程序,或者您可以使用 java.util.但是您提出的问题在不同的语言中是相同的。你可以试试我的解决方案,成功或失败给我留言,我会帮你的。
  • 对不起,我的错误,我的意思是我现在正在使用 kotlin,哈哈。实际上,我试过了,但没用。我只是不知道背景通知。我想在单击通知时获取正文的值。
  • 有什么错误吗?因为我试过了,可能其他代码有问题,你可以在新的demo中试一下,和你的源项目对比一下。
  • excuz 先生,我把 [intent.GetStringExtra("url")] 放在哪里
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-07
  • 1970-01-01
  • 2021-05-13
  • 1970-01-01
相关资源
最近更新 更多