javascript - 如何在flutter中将数据从父页面传递到webview页面?
问题描述
我想将字符串数据传递给 webview 页面,是否可以在颤动中做到这一点?因为我知道如何通过 contentWindow.postMessage() 使用 html 和 javascript 来做到这一点,但我不知道如何在颤振中实现它,谢谢。
这是我在颤振中显示网络视图的代码
Container(
height:500,
child: EasyWebView(
onLoaded: () {
print('loaded');
},
src: webviewsrc,
),
),
解决方案
我没有尝试使用 EasyWebView,但我尝试了 webview_flutter,我可以使用它的控制器运行 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);
}),
},
);
}
推荐阅读
- javascript - 如何将 html 输入数据传递给 javascript 类
- c# - c#如何等待外部代码完成
- sql-server - 如何为一个字段设置“0.5”值 - SSMS t-sql
- javascript - 按日期和数字过滤数据表
- javascript - Slick Slider:如果滑块在视口中,则滚动到最后一张幻灯片
- ruby-on-rails - Rails 5:ActionCable 不会将消息保存到数据库中
- python - 如何更新 Sagemaker 上的 keras.json 文件
- oracle - 如何提高 SQL 查询的性能?
- php - 删除 PHP 字符串中最后一次出现的不连续、重复的单词/阶段
- scala - Slick 按列和值列表动态过滤