2011-11-24 2 views
3

내 응용 프로그램에서 myapp : // id = 1234와 같은 일반 링크와 사용자 지정 URL 스키마가 모두 포함 된 페이지를로드하는 webview가 있습니다. 지금 웹보기에서 맞춤 URL 구성표를 트랩하는 방법은 무엇입니까?

, 나는 함정이 함수 내 요청하려합니다 : URL이 위와 같이 나에게주는에서

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request 
navigationType:(UIWebViewNavigationType)navigationType{ 

    NSLog(@"NSURLRequest = %@", [[request URL] absoluteString]); 

} 

인쇄이 :와 MAMP 내 로컬 호스트 설정입니다

http://localhost:8888/myapp://id=1234 

URL에 추가 된 맞춤 URL

내가 [request scheme]을 직접 사용할 수 있기를 바랐지만, 지금은 "http"를 반환합니다. 내 앱 내에서 맞춤 URL 스키마를 처리 할 수있는 방법이 있나요? :

  1. 사용자가 웹보기에
  2. 사용자가 사용자 정의 URL 링크 (// ID = 1234의 MyApp를) 탭 :

    이 시점에서

    , 나는 다음을 수행 할 수 있도록하고 싶습니다

  3. 내 앱이 맞춤 URL을 처리하고 다른 페이지로 안내합니다 (http://www.someotherpage.com/?id=1234)

고맙습니다!

답변

0

URL에 콜론 다음에 이중 슬래시가 있으면 다음 부분은 [email protected]:port (모두 [email protected]:port은 생략 가능)으로 간주됩니다. id=1234은 호스트 이름처럼 보이지 않으므로 URL 파서가 URL을 절대 URL로 인식하지 못합니다. 따라서 URL 파서는 URL을 상대 URL로 취급합니다.

URL 구문을 myapp:id=1234 또는 myapp:///id=1234으로 변경하십시오.

+0

안타깝게도이 구성표를 사용하면 여전히 http가 반환됩니다. 문자열 비교를 사용하여 "myapp : //"가 있는지 파악한 다음 동작을 수행하는 것이 좋지 않을까요? – kurisukun

0

응용 프로그램에서 처리 할 때 사용자 지정 URL 스키마를 선언해야합니다.

Check reference

+0

고마워요,하지만 다른 응용 프로그램에서 호출 할 응용 프로그램을 등록하지 않았습니까? – kurisukun

관련 문제