Javascript 如何在Flatter中将数据从父页面传递到webview页面?
我想将字符串数据传递到webview页面,是否可以在Flatter中执行此操作?因为我知道如何通过contentWindow.postMessage()使用html和javascript,但我不知道如何在Flatter中实现它,谢谢 这是我在flatter中显示webview的代码Javascript 如何在Flatter中将数据从父页面传递到webview页面?,javascript,html,flutter,dart,webview,Javascript,Html,Flutter,Dart,Webview,我想将字符串数据传递到webview页面,是否可以在Flatter中执行此操作?因为我知道如何通过contentWindow.postMessage()使用html和javascript,但我不知道如何在Flatter中实现它,谢谢 这是我在flatter中显示webview的代码 Container( height:500, child: EasyWebView(
Container(
height:500,
child: EasyWebView(
onLoaded: () {
print('loaded');
},
src: webviewsrc,
),
),
我还没有尝试使用EasyWebView,但我尝试过,我可以使用它的控制器运行Javascript命令 在本例中,我添加了一个
scroll
侦听器,用于检测页面是否滚动到最底部
Widget _buildWebview(BuildContext context) {
WebViewController controller;
return WebView(
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) async {
webViewController.clearCache();
controller = webViewController;
await controller.loadUrl('https://pub.dev/packages/webview_flutter');
},
onPageFinished: (String _) async {
controller.evaluateJavascript('''
window.addEventListener('scroll', function(e) {
if ((Math.ceil(window.innerHeight + window.pageYOffset)) >= document.body.offsetHeight) {
ScrollCallback.postMessage('END OF PAGE!!!');
}
});
''');
},
javascriptChannels: <JavascriptChannel>{
JavascriptChannel(
name: 'ScrollCallback',
onMessageReceived: (JavascriptMessage message) {
print(message.message);
}),
},
);
}
Widget\u buildWebview(BuildContext上下文){
网络视图控制器;
返回WebView(
javascriptMode:javascriptMode.unrestricted,
onWebViewCreated:(WebViewController WebViewController)异步{
webViewController.clearCache();
控制器=webViewController;
等待控制器。加载URL('https://pub.dev/packages/webview_flutter');
},
onPageFinished:(字符串)异步{
controller.evaluateJavascript(“”)
window.addEventListener('scroll',函数(e){
if((Math.ceil(window.innerHeight+window.pageYOffset))>=document.body.offsetHeight){
ScrollCallback.postMessage('页面末尾!!!');
}
});
''');
},
JavaScriptChannel:{
JavascriptChannel(
名称:'ScrollCallback',
onMessageReceived:(JavascriptMessage消息){
打印(message.message);
}),
},
);
}