【问题标题】:UIWebView links opening in Safari在 Safari 中打开的 UIWebView 链接
【发布时间】:2011-05-26 04:14:57
【问题描述】:

我想在我的 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];
}

请提出解决此问题的方法。

【问题讨论】:

    标签: iphone objective-c uiwebview


    【解决方案1】:

    您可能希望在运行应用程序时尝试记录加载请求。可能是苹果自动将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;
    }
    

    祝你好运。我很想知道最终的工作原理。

    【讨论】:

    • 非常感谢您的快速响应。但仍然没有显示。
    • 使用 PengOne 的代码,你需要在你的 ViewController 中实现 UIWebViewDelegate 以及在 viewDidLoad 中为你的 WebView 设置委托
    【解决方案2】:

    来自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:] 委托方法。

    【讨论】:

      【解决方案3】:

      不确定你是否曾经让它工作,但这对我来说很有效:

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

      【讨论】:

        猜你喜欢
        • 2023-03-10
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-01
        • 2016-04-16
        • 2015-12-02
        • 1970-01-01
        相关资源
        最近更新 更多