앱내에서 사용자를 외부의 URL 또는 이메일, 전화걸기를 사용할때 사용할 수 있는 패키지입니다.
Likes 수를 보셔도 이 패키지는 필수사용하는 것이라고 생각이 듭니다.
flutter 유튜브를 보시면 사용 방법도 간단하게 나와있답니다.
/*
* 공통 utility 함수
*/
import 'dart:io';
import 'package:get/get.dart';
import 'package:flutter/services.dart';
import 'package:url_launcher/link.dart';
import 'package:url_launcher/url_launcher.dart';
class CommonUtils extends GetxController{
//email 보내는 함수
void launchEmail(String email) async {
if(await canLaunch("mailto:$email")){
await launch("mailto:$email");
} else {
throw 'could not email';
}
}
//clipboard에 복사하는 함수
void copyClipboard(String txt){
Clipboard.setData(ClipboardData(text: txt));
Get.snackbar('Message', '주소가 클립보드에 복사되었습니다.');
}
//전화거는 함수
void makePhoneCall(String url) async {
var telUrl = 'tel:' + url;
if (GetPlatform.isIOS) {
telUrl =
telUrl.replaceAll((new RegExp(r'-')), '');
}
if (await canLaunch(url)) {
await launch(url);
} else {
printError(info: '연결이 되지 않습니다.');
}
}
//개발자 어플 링크에 접근하기 위해서 만든 함수임.
void launchUrl(String url) async {
if(await canLaunch(url)){
await launch(url);
} else {
throw 'could not launch $url';
}
}
}
저는 위와 같이 GetxController 형식으로 함수를 지정해서 사용을 하고 있습니다.
[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: could not email
위와 같이 오류가 갑자기 발생이 나더라구요.
Android 의 경우 앱이 Android 11이상을 타겟탕하며 자동으로 표시되는 앱이 아닌 다른 앱과 상호 작용해야 한다면 AndroidManifest.xml에 <queries>요소를 추가해야한다고 합니다.
https://developer.android.com/training/package-visibility/declaring?hl=ko
<key>LSApplicationQueriesSchemes</key>
<array>
<string>sms</string>
<string>tel</string>
<string>mailto</string>
</array>
IOS는 위와 같이 info.plist 에 추가를 해주셔야합니다.
핸드폰의 OS가 업데이트가 되면 무엇이 바뀌었는지 살펴볼 필요가 있다.
기존 소스는 잘 돌아가더라도 신규 소스를 적용할때는 적용이 안 될 수 있으니 꼭 패키지를 다시 한번 확인하고 패키징을 해야겠다.
[Kakao SDK 오류] 'kakao_flutter_sdk_common/kakao_flutter_sdk_common-Swift.h' file not found (0) | 2022.09.14 |
---|---|
[Polygon Testnet] MetaMask 지갑과 연결하는 방법 (0) | 2022.06.29 |
[App Store 심사시 유의사항] NSUserTrackingUsageDescription 문제 해결법 (0) | 2022.06.10 |
[NAVID] 신규 앱 출시 (0) | 2022.06.10 |
앱스토어, 플레이스토어 스크린샷 만들어주는 사이트 (0) | 2022.06.09 |