2014-02-13 71 views
2

我是一個小應用程序,其中包含用於網上衝浪的UIWebView。在一些頁面上打開Appstore用於促銷目的(這很煩人)。我怎樣才能防止呢?有沒有特殊的方法?或者只是假冒browserid防止從UIWebView中打開appstorelink

回答

1

http://bjango.com/articles/ituneslinks/ 這裏是完整的參考鏈接形成的AppStore,iTunes。

從上面的參考鏈接,apple.com是常見的所有種類的鏈接。

因此,我們可以創建正則表達式或簡單地從url中搜索字符串「apple.com」,並避免在webview中加載。

如果你想,沒有正則表達式使用下面的代碼可以幫助你:

-(BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSURL *currentURL = request.URL; 
    NSString *urlString = url.absoluteString; 

    NSRange range = [urlString rangeOfString:@"apple.com"]; 
    if (range.location != NSNotFound) 
    return YES; 
    else 
    return NO; 
} 
+0

這樣可以防止加載'apple.com'或'developer.apple.com'網站。 – Amar

0

使用此以下的UIWebView委託方法:

-(BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSURL *currentURL = request.URL; 
    NSString *urlString = url.absoluteString; 

    NSRange range = [urlString rangeOfString:@"https://itunes.apple.com"]; // Change URL if other than this. 
    if (range.location != NSNotFound) 
    return YES; 
    else 
    return NO; 
} 
+0

我猜不僅itunes.apple.com域,搜索算法可能會延長(可能是正則表達式)FE也火衛一.apple.com – Injectios

+0

是的......如果你願意,可以阻止多個鏈接。這可以根據需要更改 –

1

使用UIWebViewDelegate方法webView:shouldStartLoadWithRequest:navigationType:來檢測一下網址是在web視圖得到加載。應用商店網址通常包含itunes.apple.comphobos.apple.com

當您遇到此類網址被點擊時,您可以從網絡視圖委託方法返回NO停止加載網址。

希望有幫助!