首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

flutter_webview获取正在显示的页面的html,如何从get浏览页面中获取HTML?

Flutter WebView是一个用于在Flutter应用程序中显示Web内容的插件。要获取正在显示的页面的HTML,可以使用WebView的evaluateJavascript方法来执行JavaScript代码,然后通过回调函数获取HTML内容。

以下是一个示例代码:

代码语言:txt
复制
import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'WebView Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final flutterWebViewPlugin = FlutterWebviewPlugin();

  @override
  void initState() {
    super.initState();
    flutterWebViewPlugin.onStateChanged.listen((WebViewStateChanged state) {
      if (state.type == WebViewState.finishLoad) {
        flutterWebViewPlugin.evalJavascript('''
          javascript:(function() {
            var html = document.documentElement.innerHTML;
            window.flutter_inappwebview.callHandler('htmlContent', html);
          })();
        ''');
      }
    });
  }

  @override
  void dispose() {
    flutterWebViewPlugin.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return WebviewScaffold(
      url: 'https://example.com',
      appBar: AppBar(
        title: Text('WebView Demo'),
      ),
      withJavascript: true,
      withLocalStorage: true,
      hidden: true,
    );
  }
}

在上面的示例中,我们使用了flutter_webview_plugin插件来创建一个WebView,并在WebView加载完成后执行JavaScript代码。JavaScript代码中的document.documentElement.innerHTML可以获取到整个页面的HTML内容。然后,我们通过window.flutter_inappwebview.callHandler将HTML内容传递给Flutter应用程序。

请注意,为了使上述示例代码正常工作,您需要在pubspec.yaml文件中添加flutter_webview_plugin插件的依赖。

关于Flutter WebView的更多信息和用法,请参考腾讯云的相关文档和示例代码:

希望以上信息对您有所帮助!如果您有任何其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券