最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - how to pass data from parent page to webview page in flutter? - Stack Overflow

programmeradmin1浏览0评论

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

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,
                            ),
                      ), 
Share Improve this question asked Dec 28, 2020 at 5:58 Kevin MaliKevin Mali 311 silver badge5 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 9

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

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);
        }),
  },
);
}
发布评论

评论列表(0)

  1. 暂无评论