sha*_*eep 4 platform operating-system device dart flutter
如何在运行时检查平台(Android/iOS)?
如果要启动Android而不是启动,我想改变应用程序的行为iOS。
像这样:
_openMap() async {
// Android
var url = 'geo:52.32,4.917';
if (/* i'm on iOS */) {
url = 'http://maps.apple.com/?ll=52.32,4.917';
}
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
Run Code Online (Sandbox Code Playgroud)
Rém*_*let 12
获取当前平台的推荐方法是使用Theme.
Theme.of(context).platform
Run Code Online (Sandbox Code Playgroud)
这样,您可以Theme在运行时使用自定义覆盖该值并立即查看所有更改。
我已经在SO上进行了一些搜索,也尝试使用Google进行搜索,但是这种情况的索引不够好,因此我认为我的问题和分析服务可能会有助于在Flutter上进行开发。
如果必须在运行时检查设备的操作系统或平台,则可以使用库Platform类dart.io。
import 'dart:io'
Run Code Online (Sandbox Code Playgroud)
这样,您可以按照以下方式进行检查:
_openMap() async {
// Android
var url = 'geo:52.32,4.917';
if (Platform.isIOS) {
// iOS
url = 'http://maps.apple.com/?ll=52.32,4.917';
} else if (Platform.isWindows) {
// TODO - something to do?
}
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
Run Code Online (Sandbox Code Playgroud)
相反,如果您还需要深入了解设备,可以使用dart device_info package。
有一个很好的例子在这里。
这样,您不仅可以检查正在运行的平台,还可以检查OS的特定版本(iOS 9, 10.3, 11.x, Lollipop, Jellybean等等)以及许多其他设备信息。
更新:
在Flutter Live 2018之后-> 观看此gr8 youtube 视频中的Platform Aware Widget,以及从同一代码库兼容Android和iOS UI的最佳方法。