问题标签 [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.
c# - 为什么不等待这种方法?
我有一个使用 rg 插件弹出扩展的弹出窗口,它应该使用消息中心发送一个布尔值,但调用此弹出窗口的方法从不等待结果。
下面你们可以看到 DisplayAlert.cs 文件,它有一个显示模式窗口并使用消息中心接收布尔值的方法:
这是弹出 ContentPage 背后的代码,正如我所说,它必须由消息中心返回 true 或 false:
最后,在主窗口中,我调用并等待该方法:
我在哪里做错或错过了?
c# - MessageCenter 订阅方法没有发生
我以前从未使用过消息中心,并且在应用程序之间传递消息时可能会犯一些荒谬的错误。我尝试从 Xamarin.Android 向 Xamarin.Forms 发送消息。
Xamarin.Android 项目代码:
Xamarin.Forms:
但是指定为第三个参数的Subscribe<App>
方法永远不会被调用。我也试过这个:
但什么都没有。
我究竟做错了什么?
c# - 无法使用 MessagingCenter 从 Android MainActivity 发送消息以查看不在 Android 项目中的模型类
我尝试按照此处找到的说明在将打开特定视图的通知点击上添加 MessagingCenter 订阅操作。在某个地方我的发送/订阅没有互相交谈,我只是看不到在哪里。消息中心的细节对我来说仍然是新的,所以我确定我只是在某个地方使用了错误的类或发件人。
下面的代码已根据链接中显示的内容进行了修改。这个想法仍然大致相同。
这是我的FirebaseService类中的SendLocalNotification方法:
这是android MainActivity中的OnNewIntent方法:
这里是我尝试在我的LoadsPageViewModel中订阅消息的地方(不在 android 项目中):
c# - Xamarin MessagingCenter:发送一次,接收多次
我在使用 xamarin 消息中心时遇到了一个烦人的问题。我添加了一些断点,并注意到只发送了一条消息,但订阅者收到了两次。
我的发件人代码(第 2 页):
第1页(订阅者):
我在这里做错了什么?
c# - 在 OnCreate (Android) 或 AppDelagate (iOS) [Xamarin.Forms] 中使用消息中心时出现问题
我正在使用消息中心在整个应用程序中发送和接收消息/数据。该应用程序处理自定义文件扩展名并将它们加载到应用程序中并处理这些文件。
将文件导入应用程序有两种方法:
1-按下应用程序中的浏览按钮并选择文件(这工作正常)。
2-直接按文件,因为文件扩展名与应用程序相关联,应用程序打开并导入所选文件。这就是问题开始的地方。
如果应用程序之前没有打开并且不在后台(这意味着还没有订阅者),则应用程序启动并且不执行任何操作,如预期的那样。应用程序将所选文件发送给订阅者,但由于表单未完成打开(MainActivity
或 AppDelagate 之后执行的页面和视图模型),还没有可用的订阅者。
如果应用程序在后台,单击文件会打开应用程序并按预期工作。
我知道这个问题,但我不知道如何解决它。有什么建议么?
这是MainActivity.cs
在 Android 中:
此方法在应用程序的其中一个 ViewModel 中调用:
更新:
我认为问题不是那么清楚。我将尝试解释更多。
我想要做的是,当用户选择一个外部文件(这可能是一个 txt 文件或其他文件)时,这个应用程序应该启动并将所选文件的内容加载到应用程序中。
正在检测传入文件,当应用程序打开时首先MainActivity.cs
执行,这意味着还没有任何订阅者可用,因为应用程序尚未完成加载并且尚未调用订阅者方法。订阅者方法在MainPageView.cs
我知道应该在发送消息之前调用订阅者方法,但我该如何在MainActivity.cs
or中执行此操作AppDelagate.cs
?
更新 2:
MainPageView 在 MainActivity.cs 执行后被调用。
这是MainActivity.cs
这是App.cs
c# - C# Xamarin Forms MessagingCenter 不更新项目已通过
我MessagingCenter
用来通过我的页面传递对象,从我的 LoginPage 到我的 MainPage。即使object
已更新,当将其用于我的主页时,该对象似乎为空。
当我在更改页面之前检查对象时,即使它不再为空,它也会返回我为空。
知道我在这里想念什么吗?
编辑:这是来自 LoginPage 的调用
c# - MessagingCenter 两次捕获消息
我正在尝试使用消息中心通过消息中心发送一个简单的字符串。它有效。但是由于某种原因,尽管只发送了一条消息,但它被捕获了两次。
这是发送页面:
发送该消息的两种方式:单击按钮,或使用链接到设备的条形码扫描仪(我对该订阅没有问题,但我比较了两者并找不到问题)
然后是接收页面:
没有退订就消失了。
订阅的页面总是在订阅的后面,当我从订阅中得到我想要的答案时,它会将消息发回并消失。然后它会触发两次结果。
c# - Xamarin 消息中心多个相同的消息不同的结果
我正在制作一个计时器应用程序,所以后台非常重要。我这样做的方式是通过此链接中概述的这种方法。 https://robgibbens.com/backgrounding-with-xamarin-forms/基本上是一个 Ticked 消息循环和更新视图。
问题是我想同时运行多个计时器。这使我的程序感到困惑,并且计时器开始接收彼此的消息。知道如何在一个类与 AppDelegate.cs 和 MainActivity.cs 类之间的消息中心私下发送消息吗?
谢谢
c# - Xamarin消息中心多次订阅
我正在处理一个需要向另一个页面发送信息的页面,我正在通过消息中心执行此操作,但我注意到消息被发送一次并收到 2、4、6 次......取决于我打开了多少次订阅者页面。奇怪的是我添加了一些代码以避免多次订阅。请参阅我的代码的相关部分:
发件人:
订户:
我在发件人行上放了换行符,可以看到它只执行了一次,但在订阅者上,换行符显示了多次执行。我能做些什么来避免这种情况?
c# - Xamarin - 如何使用 MessagingCenter 触发动画
我有一个ContentView
订阅MessagingCenter
来自 ViewModel 的消息(为了通过不将视图耦合到 viewModel 来维护 mvvm 模式)。当收到消息时,ContentView
我希望它执行动画以使滑动视图可见,如下所示:
此动画与我在同一文件上的其他事件侦听器中的动画相同,并且效果很好。但是,在MessagingCenter
执行链中工作正常,它调用动画方法但没有动画发生。
这可能是线程问题吗?我都试过了await
,BeginInvokeOnMainThread
但都没有奏效。