2010-01-19 2 views
38

전 신생 iPhone 개발자로서 웹 사이트의 "모바일 버전"이 될 수있는 앱을 작성합니다.iPhone 앱 : 웹 사이트의 링크에서 앱을 열 수 있습니까?

웹 사이트의 링크에서 내 앱을 실행할 수 있는지 궁금합니다. 예를 들어 누군가 iPhone Safari에서 Google 사이트로 이동하여 링크를 클릭하면 Google 앱이 실행됩니다.

그럴 수 있습니까?
내가 시작할 수있는 앱에 "매개 변수를 전달"할 수도 있습니까? 마찬가지로 ...
다른 링크를 클릭하면 시작시 앱에서 다른 것들을 얻을 수 있습니다.

감사합니다.
다니엘

답변

51

특정 앱에는이를 실행하는 URL 스키마가 있습니다. 앱이이 구성표를 게시 한 경우 (또는 번들을 둘러 본 경우) 시작할 수 있습니다. 예를 들어, 가상의 twitter 앱은 twitterapp : // here + is + my + tweet URL로 시작할 수 있습니다. 올바른 URL 구성표로 앱을 미리로드하는 경우에도이를 수행 할 수 있습니다.

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLName</key> 
     <string>com.standalone.cooltwitterapp</string> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>twitterapp</string> 
     </array> 
    </dict> 
</array> 
+1

도 마찬가지입니다. +1 –

+2

'http : // youtube.com /'링크 (예 : youtube : //가 아닌)를 클릭하면 Youtube 앱이 어떻게 열리나요? – andrewtweber

+1

@andrewtweber OS가 특별히 http : // developer를 처리합니다. apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007899 – TofuBeer

6

당신이 할 수있는, custom URI schemes를 사용하여 :

는 여기의 Info.plist에서 샘플 URL 방식입니다. 그러나 앱이없는 고객은 이 아니며 링크를 사용할 수 있습니다.

그렇다면 내가 시작하는 앱에 매개 변수를 전달할 수도 있습니까?

다시 예. 일단 귀하의 앱이 주어진 스키마에 등록되면 귀하의 앱이됩니다.

+2

클라이언트에 앱이 있는지 여부를 나타내는 쿠키를 저장하고 쿠키를 기반으로 한 링크 또는 다른 링크를 표시하는 것은 어떻습니까? 쿠키를 찾지 못하면 대신 "XYZ 앱을 설치 했습니까?"라는 질문을 표시하십시오. 그들이 "아니오"라고 대답하면 즉시 설치하라. – iconoclast

+1

언급 된 링크가 더 이상 작동하지 않습니다. – Ju66ernaut

+0

@ Ju66ernaut 업데이트 링크. 감사. – jensgram

9

또한 유의할 점은 응용 프로그램이 URL에서 시작될 때 application:openURL:sourceApplication:annotation: 메서드가 호출된다는 것입니다. Apple's Docs의 세부 정보.

+1

링크가 끊어졌습니다 (고장났습니다). 또한 그들의 문서에서는 handleOpenURL이 더 이상 사용되지 않으며 다른 openURL 함수가 대신 사용해야한다고 설명합니다. – eodabash

+1

맞습니다. 'handleOpenURL :'은 더 이상 사용되지 않습니다. 대신이'application : openURL : sourceApplication : annotation :'을 사용하십시오. –

관련 문제