gpt4 book ai didi

java - 如何在 Flutter 应用程序和它的 android/ios 代码之间建立一个发布-订阅 channel ?

转载 作者:IT王子 更新时间:2023-10-29 07:04:39 30 4
gpt4 key购买 nike

因此,我们有 MethodChannel,它包含在 Writing custom platform-specific code 中向 Javaland 发送单个请求并返回单个响应的文档部分,但我想做的是在 Android 和我的 flutter 应用程序上运行的服务之间设置一个文字 pubsub channel ,这将允许使用替代方法 my earlier question about passing closures as arguments to Java-side因为它会允许功能

Future<Result> = doPayment(
amount: 100.00,
currency: 'USD',
onPasscodeEntry: () => _renderInputBox(),
onValidation: () => _doValidation()
);

通过做类似的事情来实现:

Future<Result> doPayment({int amount, String currency, Function onPasscodeEntry, Function onValidation}) {
Subscription sub;
try {
sub = subscribe(channel: 'myapp/doPayment/$paymentUid')
sub.send("initialize", {"amount": amount, "currency": currency});

sub.receive("onPasscodeEntry").then((payload) => onPasscodeEntry(payload));
sub.receive("onValidation").then((payload) => onValidation(payload));

return sub.receive("result")
finally {
sub?.send("deinitialize");
sub?.end()
return null;
}
}

你明白了:-)

似乎BasicMessageChannel可能是我的 friend ,但没有使用示例,也没有关于如何在平台端(又名 Javaland) Hook 它的示例,我也希望有一个接收函数——等待 Javaland 发生的事情的东西和将通知推送到 Flutter 端,

一个简单的例子是,如果 MethodChannel 使用示例能够将电池状态更新推送到 flutter 中,而不仅仅是按需从 flutter 中获取它们。

上面的例子并不是特别需要,但我想与平台建立一个双向沟通 channel ——对于我正在做的事情,我现在只需要知道这扇门没有关闭如果我选择 Flutter,对我来说。

我正在寻找合适的类/库来使用 flutter 端和 java 端以及代码示例,因为该部分在文档中并没有很好地涵盖。

最佳答案

这似乎是目前可能使用 MethodChannelEventChannel 的组合 - 一个消息从 Flutter 到平台,一个从平台到 Flutter(一旦 Flutter 端订阅) - 如 example on Github 中所示(还有一个单独的 example for swift )。

从技术上讲,这意味着可以实现 pub-sub,但这样做并不好,I wrote an issue about it to Flutter's team - 建议改用基于 Stream 的 API(然后您可以利用 rxdartrxjavarxswift 等) ,所以我们将看看进展如何。

关于java - 如何在 Flutter 应用程序和它的 android/ios 代码之间建立一个发布-订阅 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54418677/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com