📱

Flutter でデバイスOSの判定をする方法

に公開

これなに

OSごとに処理を分けたいときにどう実装するのかをメモしました

解決方法

dart.io をインポートして、OS の判定を行います
以下の例ですと、iOS, iPadOS, macOS のいずれかの時に Text を描画し、そうでない OS の場合は空の Container を描画する(つまり何も描画しない)ように処理しています

import 'dart:io' show Platform;
...

(Platform.isIOS || Platform.isMacOS) ? 
  Text(
    'iOS, iPadOS, macOS の時のみこのテキストを表示',
    textAlign: TextAlign.center,
    style: const TextStyle(color: Colors.black87, fontSize: 24.0),
  ) : Container(),
...

定義されているメソッド

以下のようにOSの名前でメソッドが書かれているのでわかりやすい
もはや説明不要ですね

  • isAndroid
  • isFuchsia
  • isIOS
  • isLinux
  • isMacOS
  • isWindows

image.png

あとがき

iOS のみで Apple ID 認証を実装したくてこの判定処理を使いました
他に良い方法があったらぜひ教えてください!

GitHubで編集を提案

Discussion