通知音 - xamarin.android notification



Xamarin.FormsのAndroidプッシュ通知アクションを処理する (1)

修正はかなり簡単に分かった。

ActivityFlags.ClearTopActivityFlags.NewTask使用する代わりに、 ActivityFlags.NewTask使用します。

MainActivity.csでOnNewIntentメソッドをオーバーライドします。

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

    ProcessPushNotification(intent);
}

だから私はこのガイドで Xamarin.Forms AndroidアプリにFCMを実装しました。 すべてがうまくいき、通知が届き、サウンドが再生され、アイコンが表示されます。通知にアクションを追加したい場合、アプリで特定のページを開く必要があります。

そして、それは私の問題だった、Xamarin.Formsはすべての Androidコンテンツを1つのアクティビティに置きます 。 つまり、特定のページを開くと、MainActivityのOnCreate全体が再びロードされます(また、LoadApplicationも同様です)。

私の通知

var notificationIntent = new Intent(this, typeof(MainActivity));

notificationIntent.AddFlags(ActivityFlags.ClearTop | ActivityFlags.NewTask);
notificationIntent.PutExtras(intent.Extras);

var pendingIntent = PendingIntent.GetActivity(this, 0, notificationIntent, PendingIntentFlags.UpdateCurrent);

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
    .SetSmallIcon(Resource.Drawable.icon)
    .SetStyle(new NotificationCompat.BigTextStyle().BigText(text))
    .SetContentIntent(pendingIntent)
    .SetAutoCancel(true)
    .SetPriority((int)NotificationPriority.Max)
    .SetVibrate(new long[] { 0, 250, 100, 250, 0 })
    .SetLights(Color.Red, 1, 250)
    .SetContentTitle("Eindexamen")
    .SetContentText(text);

FCMペイロード

{"data":{"message":"Notification Hub test notification", "action":"open-exam", "exam-id":"F50FC23C-B4EE-E611-80C3-000D3A218F79"}}

だから私の質問は、どのようにXamarin.Formsページを開くには、Android上のアプリケーション全体をリロードせずにですか?





xamarin.forms