Flutter WebView示例

加载url

 final Completer<WebViewController> _controller = Completer<WebViewController>();
  int _progressValue = 0;

  @override
  void initState() {
    super.initState();
    // Enable hybrid composition.
    if (Device.isAndroid) {
      WebView.platform = SurfaceAndroidWebView();
    }
  }
 
@override
Widget build(BuildContext context) {
	return Scaffold(
		body: Stack(
		   children: [
		     WebView(
		       initialUrl: "https://www.baidu.com",
		       javascriptMode: JavascriptMode.unrestricted,
		       allowsInlineMediaPlayback: true,
		       onWebViewCreated: (WebViewController webViewController) {
		         _controller.complete(webViewController);
		       },
		       onProgress: (int progress) {
		         debugPrint('WebView is loading (progress : $progress%)');
		         setState(() {
		           _progressValue = progress;
		         });
		       },
		     ),
		     if (_progressValue != 100) LinearProgressIndicator(
		       value: _progressValue / 100,
		       backgroundColor: Colors.transparent,
		       minHeight: 2,
		     ) else Gaps.empty,
		   ],
		),
	);
}

加载html字符串

String html = """
   <!DOCTYPE html>
        <html>
        <head><meta name="viewport" content="width=device-width, initial-scale=1.0"></head>
          <body>
            <p>html字符串加载</p>
          </body>
        </html>
  """;
    return Scaffold(
      appBar: AppBar(title: Text(widget.messageItem.title)),
      body: WebView(
        javascriptMode: JavascriptMode.unrestricted,
        onWebViewCreated: (WebViewController controller) {
          controller.loadHtmlString(html);
        },
      ),
    );

猜你喜欢

转载自blog.csdn.net/xiaopihair123/article/details/125598256