- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
与 Xamarin
, 我们一般用Message-Center在应用程序运行时向任何页面发送消息(启动应用程序或应用程序是后台)。
与 Flutter
,我们有什么方法可以发送与 Message-Center 相同的消息吗?的 Xamarin.Forms
?
最佳答案
根据我的研究,您可以使用 Channel
实现这一目标。
BasicMessageChannel是一个类似的 channel 。
原生部分 .
private final Activity activity;
private final BasicMessageChannel<String> messageChannel;
static BasicMessageChannelPlugin registerWith(FlutterView flutterView) {
return new BasicMessageChannelPlugin(flutterView);
}
private BasicMessageChannelPlugin(FlutterView flutterView) {
this.activity = (Activity) flutterView.getContext();
this.messageChannel = new BasicMessageChannel<>(flutterView, "BasicMessageChannelPlugin", StringCodec.INSTANCE);
//Set up a message handler to handle messages from Dart
messageChannel.setMessageHandler(this);
}
@Override
public void onMessage(String s, BasicMessageChannel.Reply<String> reply) {//Handle messages from Dart
reply.reply("BasicMessageChannel:" + s);//Can reply by `reply`
if (activity instanceof IShowMessage) {
((IShowMessage) activity).onShowMessage(s);
}
Toast.makeText(activity, s, Toast.LENGTH_SHORT).show();
}
/**
* Send Dart a message and receive feedback from Dart
*
* @param message Content of the message to send to Dart
* @param callback Feedback from Dart
*/
void send(String message, BasicMessageChannel.Reply<String> callback) {
messageChannel.send(message, callback);
}
@Override
public void reply(String s) {
}
}
import 'package:flutter/services.dart';
static const BasicMessageChannel _basicMessageChannel =
const BasicMessageChannel('BasicMessageChannelPlugin', StringCodec());
//Use BasicMessageChannel to receive messages from Native and reply to Native
_basicMessageChannel
.setMessageHandler((String message) => Future<String>(() {
setState(() {
showMessage = message;
});
return "receive Native's message:" + message;
}));
//use BasicMessageChannelsend message to Native And accept Native's reply
String response;
try {
response = await _basicMessageChannel.send(value);
} on PlatformException catch (e) {
print(e);
}
关于xamarin - Flutter 中的 Xamarin MessagingCenter 相当于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60042055/
当我在应用程序中多次导航时,MessagingCenter.Subscribe() 内编写的功能会被多次调用。但每次订阅之前,我都会在构造函数中取消订阅,如下所示,但仍然不起作用。 Messaging
我们在项目中使用 Xamarin.Forms,并订阅了对 DisplayAlert 和 DisplayActionSheet native 函数的 MessagingCenter 调用。 这是我们在
我正在使用 MessagingCenter 通过我的页面传递对象,从我的 LoginPage 到我的 MainPage。即使 object 已更新,当将它用于我的主页时,该对象似乎为空。 pu
我在产品页面 View 模型的 ListView 中单击一个产品项目以显示一个弹出窗口(使用 rg.plugin 弹出窗口)以选择其中一个产品变体。选择变体后,我将使用以下方法将所选变体发送到产品页面
与 Xamarin , 我们一般用Message-Center在应用程序运行时向任何页面发送消息(启动应用程序或应用程序是后台)。 与 Flutter ,我们有什么方法可以发送与 Message-Ce
在我的按钮点击事件中,我订阅了我的消息中心 bool isDataReceived = false; MessagingCenter.Subscribe(this, "Print",
我有一个小项目,其中包含一些页面,这些页面都引用静态类中的真实来源列表。此静态列表使用 HTTPRequests 定期更新。每当发生更新时,我都尝试使用 Messaging Center 来更新每个页
在我的按钮点击事件中,我订阅了我的消息中心 bool isDataReceived = false; MessagingCenter.Subscribe(this, "Print",
我有一个小项目,其中包含一些页面,这些页面都引用静态类中的真实来源列表。此静态列表使用 HTTPRequests 定期更新。每当发生更新时,我都尝试使用 Messaging Center 来更新每个页
我尝试使用我的 ViewModel 中的 MessagingCenter 实现 MVVM。我收到以下错误,因为多个线程收到相同的消息“ClearStackLayout”并且不等待彼此的回调结束: In
使用 MessagingCenter 和标准 .NET 事件处理程序来通知相关方更改有什么区别? 下面展示了同一事物的两个(未经测试的)实现: public class FooClass { pu
我正在寻找实现 MessagingCenter出于 X 原因进入我的 Xamarin 表单(可移植项目)。 -我必须让沟通MainPage.xaml.cs Project.WinPhone (Wind
我正在尝试使用 MessagingCenter 构建简单的导航但我收到 System.Reflection.TargetInvocationException当我按下后退按钮(硬件按钮)时。 这是我得
我正在尝试将数据从 MainActivity 发送回 PCL View 。当我发送一条没有数据的消息时,它会收到它。但是当我尝试用它传回一个字符串时,代码永远不会到达。 在主事件中: if(data
我是一名优秀的程序员,十分优秀!