본문 바로가기
Flutter/Flutter FAQ

Flutter 플러터 앱스토어/플레이스토어 URL 열기, Flutter Open AppStore/PlayStore URL

by 베타코드 2023. 12. 11.
반응형

질문


플러터에서 안드로이드와 IOS에서 실행되는 스마트폰에 따라 PlayStore/AppStore의 특정 URL을 어떻게 열 수 있을까요? 즉, 브라우저가 아닌 애플리케이션을 열고 싶습니다.

스레드에서 안드로이드에 대한 일부 네이티브 방법을 찾았는데, 플러터로 어떻게 할 수 있을까요?

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에 구현할 좋은 기능이 될 것입니다.


답변


다음과 같이 플랫폼에 따라 URL을 열기 위해 url_luncher를 사용할 수 있습니다:

import 'package:url_launcher/url_launcher.dart';

if (Platform.isAndroid || Platform.isIOS) {
  final appId = Platform.isAndroid ? 'YOUR_ANDROID_PACKAGE_ID' : 'YOUR_IOS_APP_ID';
  final url = Uri.parse(
    Platform.isAndroid
        ? "market://details?id=$appId"
        : "https://apps.apple.com/app/id$appId",
  );
  launchUrl(
    url,
    mode: LaunchMode.externalApplication,
  );
}

참고

  • iOS 앱 ID를 http://itunes.apple.com/lookup?bundleId=YOUR_BUNDLE_ID에서 가져올 수 있으며, trackId를 찾으시면 됩니다.
  • iOS 시뮬레이터에서는 작동하지 않습니다. 앱 스토어가 없기 때문입니다.
  • modeLaunchMode.externalApplication으로 설정하면 사파리가 일시적으로 나타나지 않습니다.
반응형

댓글