0

几个星期以来,我一直在使用 InAppWebView 包中的一个简单的 web 视图。关键是它根本没有响应,基本上我看到它可以通过减少 60% 的百分比来解决,但是我无法实现任何让客户满意的东西。有人想出了如何在不触及服务器任何内容的情况下以百分比形式减少 webview 的内容。

粘贴部分代码:

@override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Demo',
            style: TextStyle(height: 5, fontSize: 10),
          ),
          backgroundColor: Colors.transparent,
          toolbarHeight: 10,
        ),
        body: Container(
            child: Column(children: <Widget>[
              Expanded(
                  child: Stack(
                      children: [
                        InAppWebView(
                          initialUrlRequest:
                          URLRequest(url: Uri.parse("[SERVER ADDRESS]")),
                          initialOptions: InAppWebViewGroupOptions(
                            crossPlatform: InAppWebViewOptions(
                              preferredContentMode: UserPreferredContentMode.DESKTOP,
                            ),
                          ),
                          onWebViewCreated: (InAppWebViewController controller) {
                            webView = controller;
                          },
                          onLoadStart: ( controler, url) {
                          },
                          onLoadStop: ( controller, url) async {
                          },
                        )
                      ])),
            ])
        ),
      ),
    );
  }

我将不胜感激任何帮助。感谢!

4

2 回答 2

1

请试试这个包webview_flutter: ^3.0.0

于 2022-01-03T12:03:17.920 回答
0

我也试过 webview_flutter,但我发现了同样的问题,它不是很敏感,我必须减少它的百分比。

粘贴代码:

@override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white10,
      appBar: AppBar(
        title: const Text('DEMO'),
        actions: <Widget>[
          NavigationControls(_controller.future),
          SampleMenu(_controller.future),
        ],
      ),
      
      body: Builder(builder: (BuildContext context) {
        return WebView(
          initialUrl: '{SERVER ADDRESS}',
          javascriptMode: JavascriptMode.unrestricted,
          onWebViewCreated: (WebViewController webViewController) {
            _controller.complete(webViewController);
          },
          onProgress: (int progress) {
            print('WebView is loading (progress : $progress%)');
          },
          javascriptChannels: <JavascriptChannel>{
            _toasterJavascriptChannel(context),
          },
          navigationDelegate: (NavigationRequest request) {
            if (request.url.startsWith('{SERVER ADDRESS}')) {
              print('blocking navigation to $request}');
              return NavigationDecision.prevent;
            }
            print('allowing navigation to $request');
            return NavigationDecision.navigate;
          },
          onPageStarted: (String url) {
            print('Page started loading: $url');
          },
          onPageFinished: (String url) {
            print('Page finished loading: $url');
          },
          gestureNavigationEnabled: true,
          backgroundColor: const Color(0x00000000),
        );
      }),
    );
  }

于 2022-01-03T13:48:16.060 回答