UIWebView链接在Safari中打开

时间:2011-05-26 04:14:58

标签: iphone objective-c uiwebview

我想在我的webView中打开iTunes链接,但是当webView启动页面时,它会重定向到Safari浏览器。在那里,网址被打开了,但我希望它在我的webView中打开。

- (void)viewDidLoad {

    NSString *urlAddress = @"http://itunes.apple.com/us/app/foodcheck-traffic-light-nutrition/id386368933?mt=8";

    //Create a URL object.
    NSURL *url = [NSURL URLWithString:urlAddress];

    //URL Requst Object
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

    //Load the request in the UIWebView.
    [webView loadRequest:requestObj];

    [super viewDidLoad];
}

请建议一种解决此问题的方法。

3 个答案:

答案 0 :(得分:1)

您可能希望在运行应用时尝试记录加载请求。 Apple可能会自动将http://更改为itms-appshttp://phobos或沿此行更改某些内容。如果是这样,那么你可以使用以下内容阻止加载:

- (BOOL)webView:(UIWebView *)webView 
shouldStartLoadWithRequest:(NSURLRequest *)request 
 navigationType:(UIWebViewNavigationType)navigationType;
{   
    NSURL *loadURL = [[request URL] retain];
    NSLog(@"%@",loadURL);
    if([[loadURL absoluteString] hasPrefix:@"http://"])
    {
        [loadURL release]; 
        return TRUE;
    }
    [loadURL release];
    return FALSE;
}
祝你好运。我很想知道最终会有什么用。

答案 1 :(得分:1)

来自Apple reference documents- Q: How do I launch the App Store from my iPhone application? Also, how do I link to my application on the store?

的说明
  

注意:如果你有iTunes链接   一个UIWebView,你可以使用它   拦截链接后的技术   使用-[UIWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:]   委托方法。

答案 2 :(得分:0)

不确定你是否使用它,但这对我很有用:

NSString *responseString = [NSString stringWithContentsOfURL:myURL];
[self.webView loadHTMLString:responseString baseURL: nil)];