如何在Flutter中添加Webview?

Don*_* V. 16 android flutter

我知道可以将WebView添加为整页但无法找到任何示例代码.我假设你可以使用PageView作为它的基础,但不知道如何调用本机android WebView并将其添加到PageView.

谁能指出我正确的方向?

Shy*_*hil 19

您可以使用https://pub.dartlang.org/packages/webview_flutter

import 'package:webview_flutter/webview_flutter.dart';

return Scaffold(
      appBar: AppBar(
        title: const Text('Flutter WebView example'),
      ),
      body: const WebView(
        initialUrl: 'https://flutter.io',
        javascriptMode: JavascriptMode.unrestricted,
      ),
    );
Run Code Online (Sandbox Code Playgroud)

  • **重要提示:**键盘将不会在Android上显示(请参阅问题[#19718](https://github.com/flutter/flutter/issues/19718))。如果您尝试将其用于OAuth,则这是一个热门话题。如果您需要此功能,请对该问题进行表决,并且可能会比其当前的里程碑2019年10月更早地对其进行优先级修复。 (3认同)

Col*_*son 10

Flutter没有嵌入式WebView的内置支持.按照问题730进行更新.

您仍然可以在应用中显示网页内容,但您必须使用插件系统离开Flutter-land.

如果您只想打开浏览器,可以使用url_launcher Flutter插件.

如果你想做更好的事情(也许你不想要一个可见的地址栏),你可以实现一个自定义的UIViewController(iOS示例)和Activity(Android示例),并使用插件 API启动这些.


Goo*_*gle 8

您可以使用下面的 dart 插件来显示 Webview。此外,您可以从这个 url 中找到 dart 插件:https ://pub.dartlang.org/packages/flutter_webview_plugin

new MaterialApp(
      routes: {
        "/": (_) => new WebviewScaffold(
          url: "https://www.google.com",
          appBar: new AppBar(
            title: new Text("Widget webview"),
          ),
        ),
      },
    );
Run Code Online (Sandbox Code Playgroud)

  • 在我看来,这个比 `webview_flutter` 效果更好。它在显示键盘时没有问题,而且我没有遇到一些“webview_flutter”在单击时创建的崩溃,例如,下拉菜单。 (2认同)

atr*_*eon 5

webview plugin效果很好,但是它将在应用程序的每一位的顶部创建,因此您必须添加额外的逻辑来显示和隐藏插件。您可以全屏显示或显示为大小的矩形。

https://pub.dartlang.org/packages/flutter_webview_plugin