javascript - flutter_webview 在一个 javascript 通道中声明多个 javascript 接口
问题描述
我在 Java 中有这段代码,用于运行正常的 Android webView。
webView.addJavascriptInterface(new JavaScriptHandlers() {
@Override
@JavascriptInterface
public void productModuleLoaded() {
presenter.loaded()
}
@Override
@JavascriptInterface
public void productLogout() {
presenter.onLogout();
}
}, "myMessageHandlers");
在flutter_webview中,我尝试这样做。
WebView(
initialUrl: widget.pageUrl,
javascriptMode: JavascriptMode.unrestricted,
key: key,
onPageStarted: startLoading,
javascriptChannels: Set.from([
JavascriptChannel(
name: "myMessageHandlers",
onMessageReceived: (JavascriptMessage message) {
print("webView received messageHandlers");
}),
JavascriptChannel(
name: "productLogout",
onMessageReceived: (JavascriptMessage message) {
print("webView received productLogout");
}),
JavascriptChannel(
name: "productModuleLoaded",
onMessageReceived: (JavascriptMessage message) {
print("webView received productModuleLoaded");
}),
]),
),
Web 应用程序向我发送以下错误“myMessageHandlers.productModuleLoaded 不是函数”。这似乎是合乎逻辑的,因为我声明了 3 个通道而不是 1 个具有 2 个接口的通道。
是否可以在flutter_webview中重现Android java代码?如果是这样,我该如何点呢?
解决方案
推荐阅读
- javascript - html变成wordpress主题
- python - 如何在 Python 中使用 openpyxl 在现有 Excel 工作表中设置活动页眉/页脚类型?
- matlab - fmincon 和求解器的目标函数中的错误过早停止,MATLAB for 循环
- c# - 创建sharepoint用户并通过c#登录
- php - Nodejs:在php中解密数据并在node js中重写
- .net - 如何解决 VS2019 警告以使用`JoinableTaskFactory.SwitchToMainThreadAsync()` 而不是 Invoke / BeginInvoke?
- hadoop - 如何在我的服务中快速/实时地提供来自 HDFS 的数据?
- java - int 不能转换为布尔值?
- java - javax.imageio.IIOException:无法读取输入文件!正在被抛出,但我不知道为什么会这样?
- sql - Join 和 where 中的聚合