我在做颤音应用程序。我想在应用程序中打开网站。因此,我已经使用url_launcher插件打开网址,但它没有工作。无需在应用程序中显示该网站。
这是我的代码:
class _MainPageState extends State<MainPage>
with SingleTickerProviderStateMixin {
TabController _tabController;
@override
void initState() {
_tabController = new TabController(length: 2, vsync: this);
super.initState();
}
void _launch(String url) async {
try {
if (await canLaunch(url)) {
await launch(url);
}
} catch (e) {
print(e);
}
}
Widget tab1() {
return Container();
}
Widget tab2() {
return InkWell(
onTap: () {
_launch("www.google.com");
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
bottom: TabBar(
unselectedLabelColor: Colors.black,
labelColor: Colors.white,
tabs: [
new Tab(text: 'Tab 1'),
new Tab(text: 'Tab 2'),
],
controller: _tabController,
indicatorColor: Colors.white,
indicatorSize: TabBarIndicatorSize.tab,
),
bottomOpacity: 1,
),
body: TabBarView(
children: [tab1(), tab2()],
controller: _tabController,
),
);
}
}有人知道如何解决这个错误吗?
发布于 2020-09-15 07:22:37
你用错了包
若要在颤振应用程序中打开任何网站,请使用webview_flutter包单击此处查看详细信息以使用此包。
发布于 2021-03-23 12:57:45
如果使用正确,url_launcher工作正常
_launchURL() async {
const url = "https://something.com";
if (await canLaunch(url)) {
await launch(
url,
forceWebView: false,
enableJavaScript: true,
headers: <String, String>{'my_header_key': 'my_header_value'},);
} else {
throw 'Could not launch ';
}
}这些文档显示了何时以及为什么使用forceWebView和enableJavaScript。
但是请注意,Android 11 (API级别30)会给您带来一些问题。在这种情况下,canLaunch返回false。为了使它生效,我必须在我的AndroidManifest.xml中添加以下内容:
<activity android:name="io.flutter.plugins.urllauncher.WebViewActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:exported="false"/>这本身是行不通的,所以我做了更多的调查,发现了以下内容:https://developer.android.com/training/basics/intents/package-visibility#all-apps
然后,我将以下内容添加到我的AndroidManifest.xml中并为我解决了这个问题:
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />发布于 2020-09-15 07:03:04
你好,这是您在这个文件中的全部代码?
首先,在文件开始时缺少一些导入;)
例如,您需要添加
import 'package:url_launcher/url_launcher.dart';你跑了吗
pub get在修改pubspec.yaml文件之后?
https://stackoverflow.com/questions/63896633
复制相似问题