C# 当应用程序打开时,Xamarin在中收到firebase通知时是否更改标签?
嗨,朋友,可以使用xamarin形式的广播接收器 在Android Studio(Java)中,我使用broadcastreceiver: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.
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
});