UIWebView 加载但不显示网站 (XCode 4, iOS SDK 4.3)

Posted

技术标签:

【中文标题】UIWebView 加载但不显示网站 (XCode 4, iOS SDK 4.3)【英文标题】:UIWebView loading but not displaying website (XCode 4, iOS SDK 4.3) 【发布时间】:2011-04-24 13:39:03 【问题描述】:

我要编写一个包含 UIWebView 的应用程序。所以首先我想通过简单地加载一个 URL 来尝试一下。

在 Interface Builder 中创建了 UIWebView

与代码挂钩

@property(nonatomic,retain) IBOutlet UIWebView *webView;

viewDidLoad:

- (void)viewDidLoad 
[super viewDidLoad];
if(!webView)

    webView = [[UIWebView alloc]init];


webView.delegate = self;

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]]; 

我还实现了 didFailLoadWithError 和 webViewDidFinishLoad 委托方法。 调用 webViewDidFinishLoad 并指示 html 已加载。

问题是:即使调用了 webViewDidFinishLoad,UIWebView 也不显示网站。它只显示白色。当 UIWebView 被触摸和拖动但内容不可见时,会显示右侧和底部的滚动条。无处可寻。看起来很奇怪..

编辑 此屏幕截图显示了 xib 的连接:

Connections

【问题讨论】:

【参考方案1】:

如果您在 Interface Builder 中正确连接了所有内容,则不需要以下行:

if(!webView)

    webView = [[UIWebView alloc]init];


webView.delegate = self;

尝试删除它们,看看会发生什么。另外,在webView:didFailLoadWithError:回调中放一个NSLog(...),看看有没有输出。

【讨论】:

谢谢。做到了,但没有工作。我也认为这没有必要,但我想尝试一切。在调试 viewDidLoad 时,我看到 webView 分配了 0x0。那可能是错误。但是当将 loadRequest 发送到未分配的实例时它不应该崩溃吗? (它不会崩溃) 另外,当我不在代码中分配和初始化 UIWebView 时,不会调用委托方法。这意味着它真的没有按应有的方式分配和初始化? 这正是我的问题。我的 viewDidLoad 方法中有这些行。谢谢!【参考方案2】:

我明白了..我通过以下方式使用合成:

@synthesize webView = _webView;

所以需要通过如下方式调用 UIWebView:

[self.webView loadRequest:...];

这个命名约定的新手,这就是为什么我不习惯自我的必要性

【讨论】:

【参考方案3】:

您是否检查了文件所有者连接到您声明的 web 视图?

此外,webViewDidFinishLoad 并不意味着 HTML 已加载! 无论内容加载成功,都会调用该方法。

【讨论】:

谢谢你,这就是我的意思。在这种情况下它是 HTML ;) 是的,连接似乎很好 我猜,也许,你可以检查applicationdidFinishLaunchingWithOptions:,视图是否添加到窗口?

以上是关于UIWebView 加载但不显示网站 (XCode 4, iOS SDK 4.3)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Webview 上显示网站的特定部分? (Xcode 7 斯威夫特 2)

如何将UIWeb视图控制器的内容共享到社交网站?

iOS UIWebView 未正确显示网站

删除 UIWebView 选择突出显示?

使用 UIWebView 时如何显示百分比(%)

Xcode - UIWebview 不显示 CSS、Javascript 或外部内容