我有一个使用Android和Web构建目标的flutter应用程序。当我访问时:
- 安卓手机上的网络版本,我想将用户重定向到Google Play商店
- 在桌面上的网络版本,我想显示一个按钮去游戏商店,宣传应用程序的存在
- 在Android版本上,什么都不做,什么也不显示
如何做到这一点?
为了启动URL,我使用了URL_launcher包。要检测web版本,可以使用foundation包导出的kIsWeb。请注意,该提案经常出现在网站上,以检查平台是否在Flutter网站上运行(未实现(。类似地,defaultTargetPlatform是Chrome Mobile上的TargetPlatform.android,因此不能用于检测应用程序版本。
import 'package:url_launcher/url_launcher.dart';
import 'package:flutter/foundation.dart';
@override
Widget build(BuildContext context) {
//Launch the app store URL if we're on web and on android
if (defaultTargetPlatform == TargetPlatform.android && kIsWeb) {
launch(
"https://play.google.com/store/apps/details?id=com.myapp.id",
webOnlyWindowName: '_self',
);
}
[... return my normal web page design, the following is part of a Column() ... ]
!kIsWeb
? []
: <Widget>[
SizedBox(height:8),
Text("or, if you have an Android Mobile phone:"),
SizedBox(height: 8),
ElevatedButton(
onPressed: () {
launch(
"https://play.google.com/store/apps/details?id=com.app.id");
},
child: Text(
"Open the App on the Google Play store!")
)
],
编辑:;webOnlyWindowName:"_self","当自动重定向将取代当前选项卡时。以前我没有,chrome mobile会认为这是一个弹出窗口,用户大多数时候都会忽略它。最后一个问题是,这打开了网络版的游戏商店,我希望它能打开真正的游戏商店。。。