Flutter调用原生JS方法时怎么传参?

Newb.文茹 阅读 2

我在Flutter WebView里加载了一个本地HTML页面,想通过JavaScriptChannel调用JS函数并传个字符串参数过去,但JS那边收不到值,不知道是不是写法有问题。

试过这样写:

function receiveMessage(msg) {
  console.log('收到消息:', msg);
  document.getElementById('output').innerText = msg;
}

然后在Dart里用webViewController.runJavascript('receiveMessage("hello")')调用,结果控制台打印出来是undefined,元素也没更新,到底咋回事?

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
技术小利
参数被当成JS语句解析了,得用JSON.stringify转一下。这样改:

webViewController.runJavascript('receiveMessage(${jsonEncode('hello')})');


JS那边不用改,直接收字符串就行。Flutter这坑我踩过,参数得手动处理下。
点赞 1
2026-03-08 12:57