c# - Xamarin Forms 在应用打开时收到 Firebase 通知时更改标签?
问题描述
嗨,朋友们可以在 xamarin 表单中使用广播接收器
在 Android Studio(Java) 中,我使用广播接收器:
在前台接收 Firebase 通知
并在每次收到通知时更改标签的更新。
它可以在 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";
});
解决方案
听起来您需要从事件中调用 GUI 线程。这应该可以在您的 c# 代码中的 iOS 和 Android 中使用
Xamarin.Forms.Device.BeginInvokeOnMainThread(() =>
{
// code to execute
});
推荐阅读
- c++ - 如何在 C++ 中存储动态创建的对象的地址?
- python - 从图像标签创建边界框
- git - 如何在 github 上恢复提交历史记录?
- three.js - 如何修复用于宽 FOV 显示的 Threejs webxr 示例?
- excel - Excel VBA - 调整 ChartArea 大小以适应范围
- c++ - 将变量传递给c ++(Arduino)中的函数
- c# - 基于组角色的授权
- javascript - Discord 机器人出现错误并且没有做它应该做的事情
- python - Python中嵌套列表的排列
- android - 在 RecyclerView 中,scrollToPosition 和 smoothScrollToPosition 有什么区别?