2013-07-08 36 views
-1

Webview代表shouldstartloadwithrequest臨危URL從HTML,當我檢查請求一切都被轉換爲小寫字母: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:"]) { 

永遠不會成爲現實。所以我不得不更改代碼以

- (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

這是作爲升級Safari瀏覽器在iOS 5中的一部分做了更改,並與規範的URL的一致。 URL方案將始終轉換爲小寫。

(因爲這個改變,我不得不修復很多代碼)