iOS, Swift/Tip, Bug, Swift Error
Swift ) Queried URL Schemes 용도 (LSApplicationQueriesSchemes) - EEYatHo iOS
EEYatHo
2024. 2. 8. 10:12
반응형
Queried URL Schemes (LSApplicationQueriesSchemes)
- 내 앱에서 오픈할 타 앱들의 스킴을 넣어두면, canOpenURL로 해당 앱의 설치여부를 확인할 수 있음
( 넣어두지 않으면 설치 되있어도 false라고 나옴. ) - 등록하지 않아서 canOpenURL이 false여도, 그냥 open하면 열리긴함. (?_?)
- 여기서 용도는 끝. 아래는 과거 정보들이 아니라는 것을 실험하는 내용.
iOS9, WKWebView
- 과거에, iOS9 부터, LSApplicationQueriesSchemes에 스킴을 넣지 않으면,
WKWebView에서 해당 앱으로 이동 불가능이라는 말들이 있는데 ( UIWebView는 됐었다는 등. 참고 ) - iOS 17에서 실험해보니 지금은 아님. 그냥 잘 열림. (?)
- 과거에, 결제 대행 서비스를 도입하면서, 20여개의 카드앱들의 URL Schemes을 등록했던 기억이 있던차라,
어떤 이유에서 왜 썼던 건지 명확하게 하기위해 삽질 진행.- localhost 웹페이지에 URL Scheme 딥링크를 a태그로 넣어놓고,
WKWebView, SFSafariViewController, https오픈(사파리앱) 3가지 케이스의 토이프로젝트를 만들고,
iOS 15,16,17 에서,
열고자 하는 앱이 설치되어있을 때와 없을 때에,
LSApplicationQueriesSchemes 에 등록했을 때와 아닐 때 차이가 있는지 실험 진행.
- iOS 15,16,17 다 잘 열림..
- WKWebView → 알아서 열리진 않고, 앱 내에서 WKWebview 델리게이트에서 open 처리 필요.
- SFSafariVC → Alert 띄우고 열리게 해줌.
- 사파리앱 → Alert 띄우고 열리게 해줌.
- 앱 미설치시에는 다 무반응.
혹시나 LSApplicationQueriesSchemes 등록해두면, 사파리에서 자동으로 앱스토어로 연결해주려나 싶었지만 아님. - 결론 : 웹서비스에서, LSApplicationQueriesSchemes 여부와는 아무 상관없이 open 잘 됨.
- iOS 15,16,17 다 잘 열림..
- localhost 웹페이지에 URL Scheme 딥링크를 a태그로 넣어놓고,
- 고작 canOpenURL 을 위해 사용..
- 웹 입장에서는 그것도 필요없음.
- 웹에서 앱스킴을 열고, 2초동안 반응이 없으면 미설치로 판단하고 앱스토어로 보내버리는 방식을 많이 취함.