Flutter WebView插件网页为空

问题描述 投票:0回答:1

我正在使用flutter Webview插件,该插件可以正常工作,但是今天在显示仅包含宽度和高度为100%的图像的网页时,我遇到了一个问题。因此,抖动的Webview显示空白页。当我将高度和宽度更改为特定的像素(例如320px和220px)时,只有webview插件显示图像,否则100%的网页将变为空白。

webview flutter
1个回答
0
投票

您可以尝试使用我的插件flutter_inappbrowserEDIT:它已重命名为flutter_inappwebview)。

[直接将InAppWebViewimgwidthheight加载到100%小部件中的html源的示例:

import 'dart:async';

import 'package:flutter/material.dart';

import 'package:flutter_inappwebview/flutter_inappwebview.dart';

Future main() async {
  runApp(new MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => new _MyAppState();
}

class _MyAppState extends State<MyApp> {

  @override
  void initState() {
    super.initState();
  }

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: InAppWebViewPage()
    );
  }
}

class InAppWebViewPage extends StatefulWidget {
  @override
  _InAppWebViewPageState createState() => new _InAppWebViewPageState();
}

class _InAppWebViewPageState extends State<InAppWebViewPage> {
  InAppWebViewController webView;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
          title: Text("InAppWebView")
      ),
      body: Container(
          child: Column(children: <Widget>[
            Expanded(
              child: Container(
                child: InAppWebView(
                  initialData: InAppWebViewInitialData(
                    data: """
<!doctype html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <style>
            img {
                width: 100%;
                height: 100%;
            }
        </style>
    </head>
    <body>
        <img src="https://via.placeholder.com/300" alt="placeholder">
    </body>
</html>
                  """
                  ),
                  initialHeaders: {},
                  initialOptions: InAppWebViewWidgetOptions(
                      inAppWebViewOptions: InAppWebViewOptions(
                        debuggingEnabled: true,
                      )
                  ),
                  onWebViewCreated: (InAppWebViewController controller) {
                    webView = controller;
                  },
                  onLoadStart: (InAppWebViewController controller, String url) {

                  },
                  onLoadStop: (InAppWebViewController controller, String url) {

                  },
                ),
              ),
            ),
          ]))
    );
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.