首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Url_launcher url_launcher打开网站:^6.0.6

使用Url_launcher url_launcher打开网站:^6.0.6
EN

Stack Overflow用户
提问于 2021-07-17 01:22:42
回答 1查看 49关注 0票数 0

我正在使用url_launcher:^6.0.6通过单击flutter应用程序中的链接来启动网站。它可以使用Chrome (我使用的是Android设备模拟器),但所有的手机控件都会消失。我无法导航回应用程序或关闭Chrome。

我做错了什么?

AndroidManifest.xml

代码语言:javascript
复制
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />

这是按钮的代码:

代码语言:javascript
复制
    IconButton(
       icon: Icon(Icons.home),
       iconSize: 25,
       color: Colors.blueAccent,
       tooltip: 'View Property',
       onPressed: () {
       setState(() {
       _launched = _launchURL('https://www.utahrealestate.com/$_propertyMLSNbr');
                                });
                              },
                            ),

这是打开url的代码:

代码语言:javascript
复制
 Future<void> _launchURL(String url) async {
    if (await canLaunch(url)) {
      await launch(url);
    } else {
      throw 'Could not launch $url';
    }
  }

就像我说的,这是可行的,但是Chrome接管了我的模拟器。我该如何解决这个问题?

这是我要打开的url:https://www.utahrealestate.com/1750094

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-17 03:18:34

因为这是url_launcher的默认行为,网址是在安卓浏览器上启动的,你可以使用WebView!在终端运行flutter pub add webview_flutter,添加WebView包。在要使用WebView的位置添加此类:

代码语言:javascript
复制
class WebViewContainer extends StatefulWidget {
  final _url;
  WebViewContainer(this._url);

  @override
  _WebViewContainerState createState() => _WebViewContainerState();
}

class _WebViewContainerState extends State<WebViewContainer> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Your WebView'),
      ),
      body: Column(
        children: [
          Expanded(
            child: WebView(
              javascriptMode: JavascriptMode.unrestricted,
              initialUrl: widget._url,
            ),
          )
        ],
      ),
    );
  }
}

现在,只需将此代码放入您的图标按钮的onPressed方法中,即可转到WebView页面,在该页面中将显示一个返回图标,以返回您的主屏幕!

代码语言:javascript
复制
var url = 'https://www.utahrealestate.com/1750094';
                    Navigator.push(
                      context,
                      MaterialPageRoute(
                        builder: (context) => WebViewContainer(url),
                      ),
                    );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68413013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档