如果您的Flutter应用中的webview太宽而无法完全显示,您可以尝试以下方法来解决问题:

  1. 设置webview的宽度为屏幕的宽度,可以使用MediaQuery来获取屏幕宽度。例如:
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

class MyWebView extends StatelessWidget {
  final String url;
  MyWebView({this.url});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Webview"),
      ),
      body: WebView(
        initialUrl: url,
        javascriptMode: JavascriptMode.unrestricted,
        // 设置webview的宽度为屏幕宽度
        initialMediaPlaybackPolicy: AutoMediaPlaybackPolicy.always_allow,
        javascriptChannels: <JavascriptChannel>[
          _toasterJavascriptChannel(context),
        ].toSet(),
        navigationDelegate: (NavigationRequest request) {
          if (request.url.startsWith('https://www.youtube.com/')) {
            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,
      ),
    );
  }

  JavascriptChannel _toasterJavascriptChannel(BuildContext context) {
    return JavascriptChannel(
        name: 'Toaster',
        onMessageReceived: (JavascriptMessage message) {
          ScaffoldMessenger.of(context).showSnackBar(
            SnackBar(content: Text(message.message)),
          );
        });
  }
}
  1. 在webview中使用适当的viewport属性来控制web页面的宽度。例如:
<meta name="viewport" content="width=device-width, initial-scale=1.0">

这将根据屏幕的宽度自动调整web页面的大小。如果您在使用Flutter Webview插件时遇到任何其他问题,可以查看官方文档或参考其他Flutter Webview教程以获取更多帮助。

flutter_webview太宽显示不全

原文地址: https://www.cveoy.top/t/topic/b0W1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录