2012-07-02 1 views
1

예 : facebook 앱은 기본적으로 html5를 사용하는 webview이므로 누군가의 벽에 무언가를 쓸 때 기본 메시지 편집기와 같은 것들을 어떻게 연결합니까? 아마 Three20을 사용하고있는 앱의 일부를 알고 있습니다. 그래서 그들은 단지 앱 URL을 사용하여 앱의 해당 부분에 연결하고 있습니까? (예 : fb : // 프로필/122605446).응용 프로그램의 일부를 여는 webview를 통해 링크를 만들 수 있습니까?

답변

3

UIWebView 대리자 메서드 webView:shouldStartLoadWithRequest:navigationType: 메서드를 사용하여이 작업을 수행 할 수 있습니다. 사용자 정의 URL 스키마를 사용하여 사용자 정의 코드를 트리거해야합니다. 그렇지 않으면 정상적으로 전달됩니다. 그래서 귀하의 예를 들어 fb은 사용자 정의 구성표입니다.

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    NSURL *url = request.URL; 
    NSString *scheme = [url scheme]; 
    if ([scheme isEqualToString:@"fb"]) { 
     //Do something with the rest of the url and take any action you like. 
    } 
    else { 
     return YES;  
    } 
} 
: URL의 나머지 여기

사용자 122605446.의 프로필 화면으로 이동하기 위해 사용하는 데 도움이되는 몇 가지 샘플 코드입니다

0

앱에 여러 URL 유형 (또는 하나만, fb : //)을 등록 할 수 있습니다.

그런 다음 URL을 구문 분석하고받은 URL을 기반으로 응용 프로그램의 다른 부분을 엽니 다.

좋은 개요 및 자습서는 http://mobiledevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html을 참조하십시오.

는 (정말 응용 프로그램의 전망이 경우 HTML5로 작성되어 있는지 중요하지 않습니다.)

2

예 당신이 할 수 있습니다. UIWebViewDelegate Protocol Reference을 찾으십시오. 특히 webView:shouldStartLoadWithRequest:navigationType:

NSURLRequest은 링크를 클릭 할 때 알려줍니다. 링크 &에있는 args에 따라 특정 args를 가질 수 있습니다. 사용자 정의 할 수있는 args에 따라 iOS 앱에서 열리는보기를 처리 할 수 ​​있습니다. 요청을로드하지 못하도록하려면이 방법으로 NO을 반환하면됩니다.

1

UIWebViewDelegate에는 webView:shouldStartLoadingRequest:navigationType이라는 메서드가 있습니다. 이 방법을 사용하면 특정 링크, 단추 클릭 등을 차단할 수 있습니다.

<a href="myApp://dosomething">Click!</a> 위임 메서드의 두 번째 인수에는 이제 URL이 "myApp :"인 NSURLRequest가 있습니다.// dosomething ".