如何在Flutter应用内显示网页?

4

我想在我的Flutter应用程序中显示一个网页。我尝试使用URL Launcher,但在Chrome浏览器中测试时会创建一个新的标签页。我希望在保留现有选项卡的情况下显示网页。

以下代码会打开一个新的标签页:

showLink(link) async {

if (await canLaunch(link)) {
  await launch(link, forceSafariVC: true, forceWebView: true);
} else {
  throw "Could not open link (" + link + ").";
}

我尝试了所有可能的布尔参数组合。 我尝试使用Webview,但它失败了:

 @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text("TutorialKart - Flutter WebView"),
        ),
        body: Center(
          child: WebView(
            initialUrl: 'https://www.tutorialkart.com/',
            javascriptMode: JavascriptMode.unrestricted,
            onWebViewCreated: (WebViewController webViewController) {
              _controller = webViewController;
            },
          ),
        ),
      ),
    );
  }
}

我得到如下错误信息:

不支持的操作:尝试在TargetPlatform.windows中使用默认的Webview实现,但没有默认实现。

此外,它提供了一个链接,但是相对于错误来说,链接是无用且脱离上下文的。
我该如何使Webview工作起来呢?或者是否有更好的选择?

你尝试过这个吗?https://dev59.com/31MI5IYBdhLWcg3wmcsN - Nisanth Reddy
2
这是在浏览器中运行时发生的,因此没有使用任何Android代码。 - user14202986
1个回答

7

假设您正在使用以下软件包。

webview_flutter: ^2.0.7

根据他们的文档,目前Flutter不支持Web平台,仅支持Android和iOS。

在Flutter Web上实现一个WebView的方法是使用IframeElement元素。

有关实施细节,请参阅此处


没有解决我的问题。 - Allen Chen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接