阻止从UIWebView打开appstorelink

时间:2014-02-13 13:38:25

标签: ios uiwebview

我有一个小型应用,其UIWebView用于网上冲浪。在某些页面上打开Appstore用于促销目的(这很烦人)。我怎么能防止这种情况?有特殊方法吗?或者只是伪造browserid

3 个答案:

答案 0 :(得分:1)

使用UIWebViewDelegate方法webView:shouldStartLoadWithRequest:navigationType:检测网页视图中加载的网址。应用商店网址通常包含itunes.apple.comphobos.apple.com

当您遇到此类网址时,您可以从网络视图委托方法返回NO以停止加载网址。

希望有所帮助!

答案 1 :(得分:1)

http://bjango.com/articles/ituneslinks/ 这里是appstore,itunes链接形成的完整参考。

来自参考链接,apple.com对于所有类型的链接都是通用的。

因此我们可以创建正则表达式或只是从网址搜索字符串“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;
}

答案 2 :(得分:0)

使用以下UIWebView Delegate方法:

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