如何在Flutter中将数据从父页面传递到WebView页面? [英] how to pass data from parent page to webview page in flutter?

查看:64
本文介绍了如何在Flutter中将数据从父页面传递到WebView页面?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将String数据传递到Webview页面,是否有可能做到这一点?因为我知道如何通过contentWindow.postMessage()使用html和javascript来做到这一点,但我不知道如何在颤抖中实现它,谢谢.

i want to pass a String data to a webview page, is it possible to do it in flutter? because i know how to do it using html and javascript via contentWindow.postMessage() but i don't know how to implement it in flutter, thanks.

这是我的代码,用于显示网络视图

This is my code in flutter to show the webview

Container(
                       height:500,
                        child: EasyWebView(
                            onLoaded: () {
                              print('loaded');
                            },
                            src: webviewsrc,
                            ),
                      ), 

推荐答案

我没有尝试使用EasyWebView,但是我尝试了

I haven't tried using EasyWebView, but I tried webview_flutter and I can run a Javascript command using its controller.

在此示例中,我添加了一个 scroll 侦听器,该侦听器可检测页面是否滚动到最底部.

In this example, I added a scroll listener which detects if page is scrolled to bottom most.

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);
        }),
  },
);
}

这篇关于如何在Flutter中将数据从父页面传递到WebView页面?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆