[Flutter]플러터 전화걸기 기능 구현

이은지·2024년 8월 7일
0

flutter-development

목록 보기
6/6

Flutter에서는 url_launcher 패키지를 이용해 전화 걸기 기능을 구현할 수 있다.

0. url_launcher 패키지 설치

flutter pub add url_launcher

1. 설정

  • url_launcher를 안드로이드에서 사용하기 위해서는 AndroidManifest.xml 파일 수정이 필요함
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.url_launcher_example">
    <queries>
        <!-- If your app makes calls -->
        <intent>
            <action android:name="android.intent.action.DIAL" />
            <data android:scheme="tel" />
        </intent>
    </queries>

   <application>
        ...
    </application>
</manifest>

2. url_launcher 사용하기

  • InkWell : 자식위젯에 터치 이벤트가 발생하였을 때 어떻게 처리할 지(위젯 변화, 페이지 전환 등)를 설정하는 위젯
    • 여기서 child 위젯은 통화 Icon
  • Icon(Icons.call) 에 터치 이벤트가 발생하면 onTap 함수 실행
    • ‘tel: 전화번호’ 형식을 uri로 변환
    • canLaunchUrl 함수는 주어진 URL을 처리할 수 있는 앱이 있는지 확인
    • launchUrl함수는 실제로 그 url을 열어줌 → 전화앱을 열어 전화번호로 전화를 걸 수 있음
import 'package:url_launcher/url_launcher.dart';

class VtInfo extends StatelessWidget {
	//생략
  
  Widget build(BuildContext context) {
    return Column(
      children: [
					//생략
        
          InkWell(
            onTap: () async {
              final url = Uri.parse('tel:${vtData['phoneNumber']}');
               print('tel:${vtData['phoneNumber']}');
              if (await canLaunchUrl(url)) {
                await launchUrl(url);
              } else {
                throw 'Could not launch $url';
              }
            },
            child: Icon(Icons.call),
      ],
    );
  }
}
profile
소통하는 개발자가 꿈입니다!

0개의 댓글