Blog スタッフブログ

Flutter システム開発 ひとくちコードスニペット

[Flutter]ストアページを開くコードスニペット

こんにちは、株式会社MIXシステム開発担当のBloomです。

今回はFlutterでストアページを開くコードスニペットを掲載します。

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

class StorePageButton extends StatelessWidget {
  const StorePageButton({super.key});

  // iOS: AppStoreConnectで確認できるApple ID
  static const String appStoreId = '1234567890';

  // Android: GooglePlayConsoleで利用しているパッケージ名
  static const String androidPackageName = 'com.example.app';

  Future<void> _openStorePage() async {
    final Uri url;

    if (Platform.isIOS) {
      url = Uri.parse('https://apps.apple.com/app/id$appStoreId');
    } else if (Platform.isAndroid) {
      url = Uri.parse(
        'https://play.google.com/store/apps/details?id=$androidPackageName',
      );
    } else {
      throw UnsupportedError('このプラットフォームには対応していません');
    }

    final bool result = await launchUrl(
      url,
      mode: LaunchMode.externalApplication,
    );

    if (!result) {
      throw Exception('ストアページを開けませんでした: $url');
    }
  }

  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: _openStorePage,
      child: const Text('ストアページを開く'),
    );
  }
}

ここに最新バージョンを確認する処理を追加するとアップデート訴求が可能になります。