在应用处于打开状态时收到Firebase通知时,Xamarin Forms会更改标签。

时间:2019-01-13 03:54:26

标签: c# android xamarin.forms push-notification firebase-cloud-messaging

朋友们,可以使用xamarin形式的广播接收器

在Android Studio(Java)中,我使用broadcastreceiver:

  1. 在前台接收Firebase通知

  2. 并在每次收到通知时更改标签的更新。

是否可以在XF中使用?或者我应该分别针对Android和IOS做到这一点

  

我已经使用C#代码查看了该视图

我把这个gif https://media.giphy.com/media/1mikDug30CysbMCGqA/giphy.gif

我希望每次收到通知时都使用新的通知数据更新标签:

txtUsuario.Text 

并在应用打开时执行其他功能

CrossFirebasePushNotification.Current.OnNotificationReceived += async (s, p) =>
        {
            //EJECUTAR ESTE METODO [OnNotificationReceived] POR DEFECTO Y NO CUANDO HAGA CLICK EN EL EVENTO
            try
            {
                Console.Out.WriteLine("TOKEN CONSOLE : + p." + p.Data);
                notificationReceived = p.Data.ToString();
                object objetoRecivido = p.Data;
                var data = new
                {
                    codigo = 0,
                    nombreUsuario = ""
                };
                //https://github.com/CrossGeeks/FirebasePushNotificationPlugin/blob/master/docs/FirebaseNotifications.md
                var json = JsonConvert.SerializeObject(p.Data, Newtonsoft.Json.Formatting.Indented);
                myobject = new AOCAdvancedSettings();
                myobject = JsonConvert.DeserializeObject<AOCAdvancedSettings>(json);
                System.Diagnostics.Debug.WriteLine("Received");
                txtUsuario.Text = myobject.nombreUsuario;
                Device.BeginInvokeOnMainThread(() => {

                    txtUsuario.Text = (myobject != null) ? myobject.nombreUsuario : "usuario";

                });

1 个答案:

答案 0 :(得分:1)

听起来您需要从事件中的GUI线程上调用。这应该可以在您的C#代码中的iOS和Android设备上运行

Xamarin.Forms.Device.BeginInvokeOnMainThread(() =>
{
     // code to execute
});