我正在使用url_launcher:^6.0.6通过单击flutter应用程序中的链接来启动网站。它可以使用Chrome (我使用的是Android设备模拟器),但所有的手机控件都会消失。我无法导航回应用程序或关闭Chrome。
我做错了什么?
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />这是按钮的代码:
IconButton(
icon: Icon(Icons.home),
iconSize: 25,
color: Colors.blueAccent,
tooltip: 'View Property',
onPressed: () {
setState(() {
_launched = _launchURL('https://www.utahrealestate.com/$_propertyMLSNbr');
});
},
),这是打开url的代码:
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
发布于 2021-07-17 03:18:34
因为这是url_launcher的默认行为,网址是在安卓浏览器上启动的,你可以使用WebView!在终端运行flutter pub add webview_flutter,添加WebView包。在要使用WebView的位置添加此类:
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页面,在该页面中将显示一个返回图标,以返回您的主屏幕!
var url = 'https://www.utahrealestate.com/1750094';
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => WebViewContainer(url),
),
);https://stackoverflow.com/questions/68413013
复制相似问题