C# 当应用程序打开时,Xamarin在中收到firebase通知时是否更改标签?

C# 当应用程序打开时,Xamarin在中收到firebase通知时是否更改标签?,c#,android,xamarin.forms,push-notification,firebase-cloud-messaging,C#,Android,Xamarin.forms,Push Notification,Firebase Cloud Messaging,嗨,朋友,可以使用xamarin形式的广播接收器 在Android Studio(Java)中,我使用broadcastreceiver: 在前台接收Firebase通知 并在每次收到通知时更改标签的更新 是否可以在XF中使用?或者我应该分别为Android和IOS做这件事 我对c代码已经有了这样的看法 我把这个 我希望每次收到通知时,使用新的通知数据更新标签: txtUsuario.Text 并在应用程序打开时在中执行其他功能 CrossFirebasePushNotification.

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

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

  • 在前台接收Firebase通知

  • 并在每次收到通知时更改标签的更新

  • 是否可以在XF中使用?或者我应该分别为Android和IOS做这件事

    我对c代码已经有了这样的看法

    我把这个

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

    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";
    
                    });
    
    CrossFirebasePushNotification.Current.OnNotificationReceived+=async(s,p)=>
    {
    //我收到的通知中没有任何错误,请点击事件
    尝试
    {
    Console.Out.WriteLine(“令牌控制台:+p.”+p.Data);
    notificationReceived=p.Data.ToString();
    对象objetoRecivido=p.数据;
    var数据=新
    {
    codigo=0,
    nombreUsuario=“”
    };
    //https://github.com/CrossGeeks/FirebasePushNotificationPlugin/blob/master/docs/FirebaseNotifications.md
    var json=JsonConvert.serialized对象(p.Data,Newtonsoft.json.Formatting.Indented);
    myobject=新的AOCAdvancedSettings();
    myobject=JsonConvert.DeserializeObject(json);
    System.Diagnostics.Debug.WriteLine(“已接收”);
    txtUsuario.Text=myobject.nombreUsuario;
    Device.beginInvokeMainThread(()=>{
    Text=(myobject!=null)?myobject.nombreUsuario:“usuario”;
    });
    
    听起来您需要从事件中调用GUI线程。这应该可以在iOS和Android的c#代码中使用


    谢谢你的回答@jlo gmail。我将稍后进行测试。你应该将你的代码作为文本并标记为代码
    Xamarin.Forms.Device.BeginInvokeOnMainThread(() =>
    {
         // code to execute
    });