如何在Android和IOS上使用flutter打开PlayStore / AppStore的特定URL,具体取决于执行哪个智能手机? 我的意思是我想打开应用程序,不是浏览器或类似的东西。
在这个thread中,我找到了 android 的一些原生方式,但是我怎么能用flutter做到这一点?
final String appPackageName = getPackageName(); // getPackageName() from Context or Activity object
try {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}
如果目前无法做到这一点,那么为插件url_launcher实现它将是一个不错的功能。
答案 0 :(得分:5)
您可以使用此Library,
基本上,要使用此插件,请在pubspec.yaml文件中添加launch_review
作为依赖项。
launch_review: ^1.0.1
使用:
import 'package:launch_review/launch_review.dart';
然后在Dart代码中的任何位置调用LaunchReview的静态启动方法。如果没有提供参数,它将考虑当前包。
LaunchReview.launch();
要打开任何其他应用程序的App Store页面,您可以传递应用程序ID。
LaunchReview.launch(androidAppId: <package name>,
iOSAppId: <ios app id>);
答案 1 :(得分:4)
您还可以尝试store_redirect,它会自动检测并重定向到从中启动的应用程序。
答案 2 :(得分:3)
您可以按以下步骤使用url_launcher包打开应用商店/播放商店:
_launchURL(String url) async {
if (await canLaunch(url)) {
await launch(url);
}
else {
throw 'Could not launch $url';
}
}
答案 3 :(得分:2)
您可以使用此插件。here
超级简单。 要使用此小工具,只需将包装名称(应用程序ID)写在您的dart代码上即可。
OpenAppstore.launch(androidAppId: "com.facebook.katana&hl=ko", iOSAppId: "284882215")
答案 4 :(得分:1)
您可以在抖动中执行类似的操作:
import 'package:url_launcher/url_launcher.dart';
try {
launch("market://details?id=" + appPackageName);
} on PlatformException catch(e) {
launch("https://play.google.com/store/apps/details?id=" + appPackageName);
} finally {
launch("https://play.google.com/store/apps/details?id=" + appPackageName);
}
由于某种原因,异常/捕获似乎不起作用,所以最后添加'finally'就可以了:)
答案 5 :(得分:0)
我发现这个article对您的情况很有帮助。它可以在Android上运行,而我没有在IOS上尝试过。
使用url_launcher插件
答案 6 :(得分:0)