2012-04-06 3 views
1

Safari에서 this url을 열면 iOS에이 앱이 설치되어 있는지 확인합니다. 그렇지 않으면 앱이 실행됩니다. 그렇지 않으면 앱 스토어 앱으로 리디렉션됩니다.앱이 이미 설치된 경우 UIWebView의 iTunes 링크를 엽니 다.

UIWebView도 동일한 작업을 수행 할 수 있습니까? 중요한 것은 시스템이 설치된 앱의 날씨를 확인하고 응답하기 위해 CFBundleURLTypes이 등록되어 있다는 것입니다.

편집 : 죄송합니다. 문제를 확인하는 것이 잘못되었습니다. 실제로 앱에 등록 된 직접 (로컬) 링크로 리디렉션되는 다른 링크가 있습니다. 내가

-(BOOL) webView:(UIWebView *)inWeb 
    shouldStartLoadWithRequest:(NSURLRequest *)inRequest 
    navigationType:(UIWebViewNavigationType)inType 

지금이 잡아 UIApplication openURL 당신이 원하는 않는 경우

[[UIApplication sharedApplication] openURL:url] 
+0

당신은 항상 사파리에서이 URL을 열려면 '사용 UIApplication openURL' 수를 설치 한 경우이 감지와 함께 당신을 도울 수 있습니다. 앱에서 Safari 없이도 할 수 있는지는 잘 모르겠지만 Safari는 다른 권한 (상위)으로 실행되므로 표준 샌드 박스 내부에서는 불가능합니다. – kuba

답변

3

전화 (앱 스토어에서 앱 페이지를 열거 나이 설치되어있는 경우 응용 프로그램을 열고, 나는 그렇게 할 것 같아요)

// myWebView will be your initialized web view 
[myWebView setDelegate:self]; 

// implement this method in the owning class 
-(BOOL) webView:(UIWebView *)inWeb 
shouldStartLoadWithRequest:(NSURLRequest *)inRequest 
      navigationType:(UIWebViewNavigationType)inType 
{ 
    if (inType == UIWebViewNavigationTypeLinkClicked) { 
     [[UIApplication sharedApplication] openURL:[inRequest URL]]; 
     return NO; 
    } 

    return YES; 
} 

모든 링크를 열 것 사파의 웹보기에서 클릭 : 다음과 같은 방법으로있는 UIWebView에서 이벤트를 열고 URL이 "훔칠"수 ri/App Store/기본 처리 응용 프로그램. 이 방법으로 iTunes 링크 만 열려면이 방법에서 URL 구문 분석을 구현하고 해당 링크 만 리디렉션 할 수 있습니다. YES을 반환하면 기본 핸들러가 호출됩니다. 즉, 링크가 웹보기에서 열립니다. 그것은 현재 아이튠즈 뮤직 스토어에 클릭이 아이폰 OS 5.1

여전히 앱 스토어를 시작하는 두 번째 연결 작동 방식을

관련 문제