2013-07-08 2 views
-1

Webview HTML에서 위임 shouldstartloadwithrequest 접수가 URL과 내가 요청을 검사 할 때 모든 것이 소문자로 변환된다IOS,있는 UIWebView,

- (BOOL) webView: (UIWebView *) webView shouldStartLoadWithRequest:(NSURLRequest *) request navigationType: (UIWebViewNavigationType) navigationType { 
    // Only do something if a link has been clicked 
    if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
     NSString *link = [[request URL] absoluteString]; 
     if ([link hasPrefix:@"playSound:"]) { 
      [PlayAudio playAudio: [link substringFromIndex:10]]; 
      return NO; 
     } 
    } 
    return YES; 
} 

문제가

NSString *link = [[request URL] absoluteString]; 

전에되어 있는지 확인 라인 클릭 된 링크의 수정되지 않은 사본이 있습니다. iOS3와 iOS4에서는 여전히 동일합니다. 하지만 iOS5에서는 소문자로 변환됩니다. 다음 줄

if ([link hasPrefix:@"playSound:"]) { 

결코 사실이 아닙니다. 그래서 나는이에서 iOS 5에서 사파리로 업그레이드의 일환으로 만든 변화였다

- (BOOL) webView: (UIWebView *) webView shouldStartLoadWithRequest:(NSURLRequest *) request navigationType: (UIWebViewNavigationType) navigationType { 
    // Only do something if a link has been clicked 
    if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
     NSString *link = [[[request URL] absoluteString] lowercaseString]; 
     if ([link hasPrefix:@"playsound:"]) { 
      [PlayAudio playAudio: [link substringFromIndex:10]]; 
      return NO; 
     } 
    } 
    return YES; 
} 
+2

Soooo ... 질문은 무엇입니까? – johnyu

+0

정확히 .. 와트가 ?? – croyneaus4u

+0

-1 실제 질문이없는 경우. 질문을하는 경우 제거됩니다. – Popeye

답변

0
if ([link hasPrefix:@"playsound:"] ||[link hasPrefix:@"playSound:"]) 
{ 
    [PlayAudio playAudio: [link substringFromIndex:10]]; 
     return NO; 
} 
+0

하지만 문제는 요청 필드에서 인코딩 된 값을 가져 오는 것입니다. 내가 작은 모든 것을받는 것에 따라 나는 그것을 해독 할 수 없다. 내가 그것을 해독 할 때 나는 아무 것도 얻지 못한다 .. –

1

에 코드를 변경했다 및 URL의에 대한 사양과 일치한다. URL 체계는 항상 소문자로 변환됩니다.

(이 변경으로 인해 많은 코드를 수정해야했습니다.)