Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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
Today
Total
관리 메뉴

메모장

[Flutter] URL Launcher 사용하기 본문

개발/Flutter

[Flutter] URL Launcher 사용하기

아나도개발잘하고싶다 2024. 8. 28. 20:30

이 글에서는 url_launcher 패키지를 처음 사용하는 사람들을 위해 설치, 각 플랫폼에서의 설정, 간단한 예제 코드를 소개하겠습니다.

https://pub.dev/packages/url_launcher

 

url_launcher | Flutter package

Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes.

pub.dev

 

 

1. url_launcher 패키지 설치하기

먼저, Flutter 프로젝트에 url_launcher 패키지를 추가해야 합니다.

아래 명령어를 통해 url_launcher 패키지를 추가합니다.

flutter pub add url_launcher

2. Android 및 iOS에서 필요한 스키마 설정하기

Flutter 앱이 다양한 플랫폼에서 동작하기 위해서는 각 플랫폼에 맞는 설정이 필요합니다. Android와 iOS 모두에서 URL을 제대로 실행하기 위해 특정 설정을 추가해야 합니다.

2.1 Android에서의 설정

Android에서 https 스키마를 사용하여 URL을 처리하려면 AndroidManifest.xml 파일에 설정을 추가해야 합니다.

1) AndroidManifest.xml 파일 열기

android/app/src/main/AndroidManifest.xml 경로에 있는 AndroidManifest.xml 파일을 엽니다.

 

2) 필요한 쿼리 추가하기

Android 11(API 30) 이상에서는 외부 앱에서 실행할 URL 스키마를 명시적으로 허용해야 합니다. 이를 위해 queries 요소를 AndroidManifest.xml에 추가합니다.

<manifest xmlns:android\="[http://schemas.android.com/apk/res/android](http://schemas.android.com/apk/res/android)" package\="com.example.your\_app\_name"\>
  # ...
  <queries>
    <intent\>
      <action android:name\="android.intent.action.VIEW" />
      <data android:scheme\="https" />
    </intent\>
  </queries>
</manifest\>

위 설정을 통해 앱이 외부 브라우저를 호출할 수 있도록 https 스키마를 허용합니다. 이 설정은 https URL을 처리하는 모든 인텐트를 허용하는 데 필요합니다.

2.2 iOS에서의 설정

1) Info.plist 파일 열기

ios/Runner/Info.plist 파일을 엽니다.

 

2) URL 스키마 추가하기

Info.plist에 URL 유형을 추가합니다. 예를 들어, 모든 HTTP 및 HTTPS URL을 허용하려면 아래와 같이 설정합니다:

<key\>LSApplicationQueriesSchemes</key\>
<array>
  <string>http</string>
  <string>https</string>
</array>

이 설정을 통해 iOS에서도 앱이 HTTPS URL을 처리할 수 있도록 허용합니다.

3. url_launcher를 활용한 예제 코드 작성

패키지 설치와 플랫폼별 설정을 마쳤다면, 이제 실제로 URL을 여는 Flutter 코드를 작성할 수 있습니다. 아래는 간단한 예제입니다.

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('URL Launcher Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () async {
                  const url = 'https://www.google.com';
                  if (await canLaunch(url)) {
                    await launch(url);
                  } else {
                    throw 'Could not launch $url';
                  }
                },
                child: Text('Open Google'),
              )
            ],
          ),
        ),
      ),
    );
  }
}

요약

  • 패키지 설치: flutter pub add 명령어로 url_launcher 패키지를 프로젝트에 추가합니다.
  • 플랫폼별 설정: Android에서 https 스키마를 처리하기 위해 AndroidManifest.xml에 쿼리 설정을 추가하고, iOS에서는 Info.plist에 URL 스키마를 추가합니다.