【问题标题】:iPhone UIWebview Loads on Simulator But not on DeviceiPhone UIWebview 在模拟器上加载但不在设备上
【发布时间】:2010-02-24 02:50:58
【问题描述】:

我在选项卡栏上有一个 UIWebview,它可以在模拟器上正确加载,但在设备上却没有。有没有人遇到过这种情况?在过去的三天里,我一直在寻找谷歌机器,但无济于事。任何帮助将不胜感激。

【问题讨论】:

  • 你在 didFailLoadWithError 中得到了什么?
  • 如果您描述了如何尝试将数据加载到 Web 视图中会有所帮助 - 方法不止一种,那么内容来自哪里?
  • 我可能应该给您这个疑问的好处,但是您确定您的设备已连接到互联网吗? Safari 会正确加载页面吗?
  • 是的,Tabs 上有两个 UIWebview 控制器;一个关于页面和一个 PHP 页面。关于页面在模拟器和设备上加载正常。 PHP 页面仅在模拟器上加载。 PHP 页面在设备上显示空白屏幕。 [code] [phpPage loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"website.com/mypage.php"]]]; [/code] 非常感谢大家。
  • [phpPage loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"website.com/mypage.php"]]]; 哎呀。新手。

标签: iphone uiwebview


【解决方案1】:

我遇到了同样的问题。该解决方案使我避开了很多时间,但我发现我有:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    NSLog(@"shouldStartLoadWithRequest Loading: %@", [request URL]);
}

我没有从中返回任何东西。当我将其更改为

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    NSLog(@"shouldStartLoadWithRequest Loading: %@", [request URL]);
        return TRUE;

}

它有效。模拟器不关心你是否返回了 BOOL,但实际的设备,它不起作用。

【讨论】:

    【解决方案2】:

    首先检查您的连接。您是否能够从设备上的 Safari 访问这两个 URL(关于和 PHP 页面)?

    那我建议你在你的UIWebViewDelegate中加入一些错误处理代码。所以像:

    - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
    {
        // load error, hide the activity indicator in the status bar
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
    
        if ([error code] == NSURLErrorCancelled) {
            // don't show the error
    
            // if you want to know why I ignore these errors
            // check out this question:
            // http://stackoverflow.com/questions/1577670
            return;
        }   
    
        [webView loadHTMLString:[[[NSString alloc] initWithFormat:@"Failed to load page %@ %08d", [error localizedDescription, [error code]]] autorelease] baseURL:nil];
    }
    

    让我们知道你的进展。

    【讨论】:

    • 感谢各位的帮助。我从 didFailLoadWithError 得到以下信息:加载期间发生错误:Error Domain=NSURLErrorDomain Code=-1004 UserInfo=0x1743c0 "can't connect to host"
    • 有趣的是,另一个 UIWebView 连接的是同一个网站但不同的页面。和以前一样,这两个网站在模拟器中都显示得很好。 GRRRR...
    • @robmontesinos 你是如何在相同的 URL 上进入 Safari 的?
    • 伙计,这很奇怪。我在设备上尝试了 Safari,它说“没有骰子 - 无法连接”。然后警报消失。我已经能够在我的 Mac 上使用 Safari 和 Firefox 以及通过模拟器访问有问题的页面。只是不是设备。我按照你们的建议设置了 webviewdelegate 并得到了上述 1004 错误。我告诉你的小精灵......
    • 我将 webview viewDidLoad 上的 URL 更改为 google,它在设备上显示正常。现在我的 php 文件执行 header(Location:url) 调用。这会不会把事情搞砸了? uiwebview 不支持 php 重定向吗?
    猜你喜欢
    • 2013-07-08
    • 2011-05-05
    • 2012-09-21
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多