如何在flutter_js中添加发送消息的通道



我试图通过一个消息从Javascript到Flutter使用包flutter_js,但它似乎不工作,因为它显示无通道";注册

下面是我的代码

Future<dynamic> getObjectName(JavascriptRuntime jsRuntime) async {
final completer = Completer();
JsEvalResult jsEvalResult = jsRuntime.evaluate("""
const Person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
// const personJson = JSON.stringify(Person);
sendMessage('passJson2Dart', JSON.stringify(Person));
""");
jsRuntime.onMessage('passJson2Dart', (args) {
print("test argument" + args);
Map<String, dynamic> person = json.decode(args);
print("test decode");
print(person);
return person;
});
// jsRuntime.onMessage('passJson2Dart', (args) {
//   Map<String, dynamic> person = json.decode(args);
//   completer.complete(person);
// });
// return completer.future;
}

我可以知道如何在JavascriptRuntime对象内添加或注册通道

我在我的项目中设置它的方式如下:

创建callbackChannel,然后在函数中引用callbackChannel。

final String _callbackChannel = 'callback${const ShortUuid().generate()}';

void addCallbackHandler(JavaScriptCallbackHandler handler) {
_callbackHandlers.add(handler);
<enter code here>
if (!_onMessageAdded) {
_runtime.onMessage(_callbackChannel, _onMessage);
_onMessageAdded = true;
}
}

最新更新