반응형
스키마를 사용하여 외부 앱을 열 때 추가적으로 데이터를 함께 전송해야 할 경우가 있다.
그런 경우에 스키마를 이용한 데이터 전송과 수신 방식에 대해 알아보자.
URL scheme 데이터 전송
let data = "sendData"
//스키마로 외부 앱 실행
if let openApp = URL(string: "yourapp://" + data), UIApplication.shared.canOpenURL(openApp) {
UIApplication.shared.open(openApp, options: [:], completionHandler: nil)
}
스키마로 외부앱 실행하는 부분에서 url string에 "yourapp://sendData" 이런 식으로
스키마명:// 뒤에 데이터를 붙여서 전송해주면 된다. 간단하다.
URL scheme 데이터 수신
실행시킨 외부 앱이 열렸을 때, 전송받은 데이터를 AppDelegate에서 다음과 같이 가져와 보았다.
func application(
_ app: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
ApplicationDelegate.shared.application(
app,
open: url,
sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
annotation: options[UIApplication.OpenURLOptionsKey.annotation])
print("url: \(url), scheme: \(url.scheme)") //url: yourapp://sendData, scheme: yourapp
if url.scheme == "yourapp" {
let str = url.absoluteString //"yourapp://sendData"
let arr = str.split(separator: "/") //["yourapp:", "sendData"]
print("receiveData: \(arr[1])") //receiveData: sendData
}
}
728x90
반응형
'초보 iOS 개발자의 일상 > 개발 업무' 카테고리의 다른 글
[Swift iOS] STT (Speech-To-Text) with Speech framework (0) | 2021.12.23 |
---|---|
Alamofire JSONEncoding vs URLEncoding (0) | 2021.12.14 |
[Swift iOS] url scheme 스키마 사용하여 외부 앱 실행 및 앱스토어 이동 (0) | 2021.12.09 |
[Swift iOS] Google ML Kit 이용하여 OCR 한글 인식 테스트 (0) | 2021.11.25 |
OCR - iOS 텍스트 인식 Firebase ML Kit와 TesseractOCR 비교 (한글) (0) | 2021.11.22 |