Flutter 中 WebView 的正确方法是什么?我面临很多问题。
我尝试了很多依赖项或库,但在新项目中总是会出现一些错误。
存在Webview Flutter
我使用 https://pub.dev/packages/webview_flutter 一年多了,但我总是遇到问题。另外,如果我没记错的话,无法从 webview 下载文件。
我所做的是迁移到https://pub.dev/packages/flutter_custom_tabs。超级容易使用。在 iOS 和 Android 上运行良好,到目前为止我还没有遇到任何问题。
您可以使用 url_launcher 包来打开任何网址。
if (await canLaunchUrl(uri)) {
await launchUrl(uri, mode: LaunchMode.inAppWebView);
} else {
throw UnsupportedError('Could not launch $uri');
}
当然!在 Flutter 中,WebView 小部件允许您在应用程序中显示 Web 内容。虽然 Flutter 提供了开箱即用的 WebView 小部件,但您可能会遇到限制或问题,具体取决于您的要求和目标平台。使用 flutter_inappwebview(也称为 InAppWebView)等第三方包可以提供更多功能和更好的兼容性。以下是有关如何在 Flutter 项目中使用 InAppWebView 的分步指南:
2.导入包: 将包导入到要使用 InAppWebView 小部件的 Dart 文件中:
导入'包:flutter_inappwebview/flutter_inappwebview.dart';
添加 InAppWebView 小部件: 将您现有的 WebView 小部件替换为小部件树中的 InAppWebView。例如:
在应用程序WebView( 初始UrlRequest:URLRequest(url:Uri.parse(“https://example.com”)), )
4.处理事件: InAppWebView 提供各种回调来处理页面加载、错误处理和导航等事件。您可以使用这些回调来自定义 WebView 的行为。例如:
InAppWebView(
initialUrlRequest: URLRequest(url: Uri.parse("https://example.com")),
onLoadStart: (controller, url) {
print("Page started loading: $url");
},
onLoadStop: (controller, url) {
print("Page finished loading: $url");
},
onLoadError: (controller, url, code, message) {
print("Error loading page: $code, $message");
},
)