Index
Platformを使います。
使い方はこんな感じ。
1 2 3 4 5 6 7 |
if (Platform.isAndroid) { osName = 'android'; } else if (Platform.isIOS) { osName = 'iOS'; } else if (Platform.isMacOS) { osName = 'Mac'; } |
ボタンを押すとOS名を出力するアプリを作りました。
同じアプリをMac,Android,iOSのエミュレーターで実行してみました。
githubにもあげております。
https://github.com/jostar0024/judgeOS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
import 'dart:io'; import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: const MyHomePage(title: 'Flutter Demo Home Page'), ); } } class MyHomePage extends StatefulWidget { const MyHomePage({Key? key, required this.title}) : super(key: key); final String title; @override State<MyHomePage> createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { var osName; void _judgeOs() { setState(() { if (Platform.isAndroid) { osName = 'android'; } else if (Platform.isIOS) { osName = 'iOS'; } else if (Platform.isMacOS) { osName = 'Mac'; } }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ const Text( 'This OS is', ), Text( '$osName', style: Theme.of(context).textTheme.headline4, ), ], ), ), floatingActionButton: FloatingActionButton( onPressed: _judgeOs, tooltip: 'Increment', child: const Icon(Icons.add), ), ); } } |