【问题标题】:UIWebView doesn't loadUIWebView 不加载
【发布时间】:2014-02-28 23:38:35
【问题描述】:

这看起来很简单,但我就是不知道出了什么问题。所以我想要做的是我在第一个控制器上有一个按钮,当用户单击该按钮时,我将另一个控制器推入导航堆栈并在 webview 中显示一个网站。 推送 webview 控制器的代码:

SellerViewController *sellerController = [[SellerViewController alloc] initWithNibName:@"SellerViewController" bundle:nil];
[self.navigationController pushViewController:sellerController animated:YES];

加载网站的代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.sellerWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.clickUrl]]];
}

我在 IB 中有一个 UIWebView,我将它连接到 outletsellerWebView。我还检查了clickUrl,它是正确的。问题是当我点击按钮时,新的控制器出现了,但webview中没有加载任何内容。有什么建议?谢谢!

【问题讨论】:

  • 您是否收到任何错误消息? UIWebView 的委托有一个通知失败的方法。也许这将有助于调查。
  • 你能分享示例项目吗?有了它,您会更快地得到答案。
  • 扩展@MaciejOczko 的评论:实现UIWebViewDelegate 并查看是否收到成功或失败回调。实现webView:shouldStartLoadWithRequest:navigationType: 应该可以帮助您查看它是否会尝试加载页面。

标签: ios uiwebview


【解决方案1】:

正如其他人建议的那样,设置一个委托并检查是否失败。

如果您的请求确实加载并且您的问题与 UIWebView 的内容有关,您可以对其进行调试,请参阅answer

tl;博士:

如果您使用的是 iOS >= 6,并且您有山狮 (10.8) 或 Safari >= 6,您可以:

  1. 在模拟器中打开应用程序(或在 XCode >= 4.5.x 中打开您的设备)。
  2. 打开 Safari(转到 Preferences -> Advanced 并确保“在菜单栏中显示开发菜单”已打开。
  3. 从(Safari 的)菜单栏中选择Develop -> iPhone Simulator -> [your webview page]

就是这样!

编辑

很高兴您发现了问题。您可以使用 Safari 捕获与无效或错误 URL 有关的错误。

您已将 Web Inspector 附加到您的 Web 视图,单击顶部栏上的“检查”,然后单击“时间轴”和“网络请求”,然后尝试加载您的请求。

由于您在路径前省略了 http://,因此它可能会以 file:// 为前缀——您无需猜测即可看到它请求了错误的资源。

【讨论】:

  • 谢谢各位,我添加了委托,发现错误。这是一个愚蠢的错误,我忘记在 url 之前添加“http://”。把url放到浏览器里没找到,因为浏览器自动给我加了“http://”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多