EEYatHo 앱 깎는 이야기

Swift ) Queried URL Schemes 용도 (LSApplicationQueriesSchemes) - EEYatHo iOS 본문

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 잘 됨.
  • 고작 canOpenURL 을 위해 사용..
    • 웹 입장에서는 그것도 필요없음.
    • 웹에서 앱스킴을 열고, 2초동안 반응이 없으면 미설치로 판단하고 앱스토어로 보내버리는 방식을 많이 취함.
Comments