问题标签 [messagingcenter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
557 浏览

xamarin - 如何在不将其绑定到 UI 的情况下使用 Xamarin.Forms MessagingCenter?

我有一个长时间运行的任务,需要使用类似 Toast 的消息通知用户。但是,用户可以在应用程序中自由移动。

查看https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/messaging-center/,它表明有必要绑定到 UI 才能工作?

我需要在后台发送通知,我不知道从那里发给谁。

0 投票
3 回答
2349 浏览

c# - 使用 MessagingCenter 和标准 .NET 事件处理程序通知相关方更改有什么区别?

使用 MessagingCenter 和标准 .NET 事件处理程序通知相关方更改有什么区别?

下面展示了相同事物的两个(未经测试的)实现:

诗句:

据我所知,似乎没有任何区别,但是如果有人可以提出任何优点缺点,那将有助于我理解。目前,我一直在使用事件处理程序。

切换到使用 MessagingCenter 有什么意义吗?或者任何新的最佳实践?

0 投票
1 回答
129 浏览

android - 使用 System.net.Sockets 连接时无法显示在 UI 上收到的消息

我是 xamarin.forms 的新手。我想构建一个可以使用 System.net.Sockets 接收消息的 xamarin 表单应用程序。我的问题是我能够接收消息但无法使消息显示在 UI 上。

我正在使用依赖服务,所以我专门在每个平台上实现了socket方法,这是我在Android项目中的socket接收方法。我正在尝试使用消息中心将数据从 android 项目发送到 PCL 项目。IResource 是我在 PCL 中定义的一个类。

在我的 pcl 项目中,我有一个按钮,当单击此按钮时,它将调用 ReceiveMessage() 方法。而且我还使用消息中心来接收消息并将其显示在 UI 上,但没有成功。这是按钮单击的方法。有谁知道问题出在哪里,是我没有正确使用消息中心,还是其他原因。加:当按钮被点击时,UI变得无响应,我应该使用异步编程吗?如何?

提前致谢!

0 投票
2 回答
1713 浏览

c# - 使用 MessagingCenter 将字符串从 Android 项目发送到 PCL

这是我在这个论坛上的第一篇文章,因此任何关于如何使问题更易于理解/可读等的提示都值得赞赏。

我在做什么?

我正在使用 Xamarin Forms 制作我的第一个应用程序,并且我有两个项目,PCL(便携式类库)和 Android。我的 Android 项目接收来自特定号码的传入短信并将其保存到字符串中。我想要实现的是,通过使用 MessagingCenter,将字符串从我的 Android 项目发送到我的 PCL。

我的问题:

我已经看到了很多关于此的线程,但是我缺少一些东西。而且因为我是这个论坛的新手,所以我不能写评论,所以我必须创建自己的问题。让我给你看一些代码。(parsedsms是包含短信的字符串)

SmsReceiver.cs(在我的 Android 项目中)

MissionPage.xaml.cs(在我的 PCL 项目中)

这是我在 Stackoverflow 上的另一个线程上找到的示例。我的问题是parsedsms不能从 PCL 访问。如何从我的 PCL 访问 SmsReceiver 类?您不能将 PCL 的引用(因为我猜它是一个库)添加到 Android,只能反过来。

0 投票
0 回答
715 浏览

ios - 如何使用 MessagingCenter 从 PCL 通过 Xamarin Forms 向 iOS 发送消息?

我正在使用 Xamarin 创建一个跨平台的移动应用程序,并且我正在尝试使用 MessagingCenter 在事件发生时发送消息。根据手机运行的是 iOS 还是 Android,应以不同方式处理该事件。

我能够从我的 PCL 向 MainActivity.cs(在 Droid 中)发送消息。

这是我发送消息的方式:

以下是我在 MainActivity.cs 中为 Android 订阅该消息的方式:

但是,我无法为 iOS 做同样的事情。我想我只是不知道在哪里添加订阅。Main.cs 不起作用,因为无法从静态上下文中引用“this”。我在想 AppDelegate.cs 可能是订阅消息的好地方,但把它放在 FinishedLaunching() 中没有意义。

如何使用 MessagingCenter for iOS 构建订阅消息?

0 投票
1 回答
982 浏览

c# - 如何以 xamarin 表单将数据发送回父页面?

页面中有一个标签,Account点击该标签将创建一个新ContentPage的带有房屋地址列表的标签。点击任何地址都应该弹出ContentPage 并将值发送回Account页面以设置页面中的某些字段Account。我尝试使用消息中心,但似乎无法获得价值。我错过了什么?

这是使用前提地址创建 ContentPage 的代码:

这就是它订阅消息中心的方式:

0 投票
1 回答
160 浏览

firebase - Xamarin.Forms 对消息中心的呼叫每次都会增加

我有一个问题,我发送一次消息并调用一次订阅者,但下一次调用它两次等等......这是我的代码。这是消息发送者

这是消息接收者

退订

0 投票
1 回答
515 浏览

xamarin - 只有一个 MessagingCenter 订阅的多个警报

我正在开发一个示例,其中消息中心将未从设备代码耦合到我的视图模型的状态消息发送。在这一点上,我在尝试查看模型之前使用了一条警报消息来通知事件。

为此,我在我的共享应用程序构造函数 (App.xaml) 中使用了一个静态视图实例,其中在视图构造函数中我为状态下标。

应用程序(共享)

(查看共享)

在特定平台代码(设备 - UWP)中,我创建了一个计时器,该计时器在主页构造函数中实例化一段时间后发送消息。

当我运行它时,会打开两次具有相同文本的警报消息,但没有两个订阅。相同的文本向我提供了来自相同发送事件的信息。

问题出在哪里 ?与我的静态视图有什么关系吗?

先感谢您

吉尔赫姆

0 投票
0 回答
526 浏览

xamarin.forms - 来自 AppDelegate 的 Xamarin.Forms (iOS) MessagingCenter 消息未传递

我有下一个目标:我的应用程序接收推送通知 (FCM),我需要在所有可能的情况下处理用户操作。

  • 当我收到前台推送并在WillPresentNotification中处理它时- 一切都按预期工作。
  • 当我将应用程序发送到后台模式(单击主页按钮)并接收推送时,在通知中心单击该推送我在DidReceiveNotificationResponse方法中有下一个代码:

    /li>

所以它只是向 RootPage 发送一条消息,该消息被订阅/取消订阅,如下所示:

它也有效!但!

  • 如果我完全关闭应用程序(从 App Switcher 将其刷掉)然后单击收到的推送 - 它只会发送一条消息(来自上面的代码),但永远不会到达放置在 RootPage 的订阅内的代码。

有什么错误的想法吗?

提前致谢!

0 投票
1 回答
308 浏览

c# - 如何停止计时器/更改系统 UI OnSleep Xamarin Android

所以我有一个按下按钮的应用程序:启动一个计时器,循环通过一个(++)数据并隐藏开始按钮,而是显示一个停止和下一步按钮。我查看了消息中心,我认为它正在解决问题(这里是链接Xamarin.Forms 如何从另一个 CS 文件访问公共函数?)但它并没有完全解决问题。

如果应用程序的计时器正在运行(也就是你点击了开始按钮),然后通过点击手机上的主页按钮来中断进程,则应用程序运行正常,应用程序隐藏停止/下一步按钮并显示开始按钮并停止计时器。如果您根本没有开始该过程(也就是您没有点击开始按钮)并且您点击了手机上的主页按钮,则应用程序会引发异常错误,因为我正在使用消息中心进行更改“不需要改变,因为它从未改变”。有没有更好的方法来处理这种情况?

我可以在消息中心的应用状态下使用 if/else 语句吗?我被困住了。

应用程序.xaml.cs

MainPage.xaml.cs