url 未在 UIWebView 中加载

Posted

技术标签:

【中文标题】url 未在 UIWebView 中加载【英文标题】:url not loading in UIWebView 【发布时间】:2011-08-04 10:55:10 【问题描述】:

我有一个标签栏控件。第一个选项卡包含一个导航控件。在第二个标签上,我想加载一个网页(比如 google.com)。我把代码写成

NPIViewController.h

@interface NPIViewController : UIViewController 
   IBOutlet UIWebView *webView;

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

NPIViewController.m

- (void)viewDidLoad 
  [super viewDidLoad];
  NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 
  NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
  [webView setScalesPageToFit:YES];         
  [self.webView loadRequest:request];               

页面只是没有加载。没有编译或运行时错误。这有什么问题?

【问题讨论】:

它显示了什么吗?有效吗? 【参考方案1】:

要知道什么是错的,你可以这样做。

- (void)viewDidLoad 
  [super viewDidLoad];
  webView.delegate = self;
  NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 
  NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
  [webView setScalesPageToFit:YES];         
  [self.webView loadRequest:request];               

在你的类中添加这个新方法

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error

   NSLog(@"Error : %@",error);

我希望你已经在 Interface builder 中连接了 webView 对象和它的出口?

谢谢,

【讨论】:

Ravin,我添加了这个方法。但控制台上什么都没有。没有页面加载。我还从 IB 连接到 webView。 webView 是否被声明为属性?如果不是,那么不要使用 [self.webView loadRequest:request];使用 [webView loadRequest:request];这个。(从 self.webView 中删除 self.)谢谢 在 .h 文件中,我将 webView 作为属性。你能验证我提到的代码吗?这是正确的吗?我只是从网上的示例代码中获取的。 你是否设置了委托,正如我在上面的代码中所写的那样 webView.delegate = self?尝试不使用 self.webView,使用 webView。 未来谷歌用户:要删除编译器警告,您可能需要在 AppDelegate 界面中实现 【参考方案2】:

创建你的 web 视图

IBOutlet UIWebView *webView;

试试这个代码

NSString *urlAddress = @"http://www.google.com";

    //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];

【讨论】:

【参考方案3】:

重新启动您的 IOS 模拟器。 这真的不明显,但首先在 ios 模拟器上检查 Safari 中的一些站点。 IOS 模拟器重启后,我的 webView 在模拟器和设备上都成功打开了。

查看此famous 链接。

【讨论】:

【参考方案4】:

您必须使用 https 而不是 http。如果你使用 http 你会得到这个错误信息(使用 Ravin 的代码来查看错误):

“无法加载资源,因为应用传输安全策略要求使用安全连接。”

【讨论】:

以上是关于url 未在 UIWebView 中加载的主要内容,如果未能解决你的问题,请参考以下文章

Google Adsense 广告未在 UIWebView 中加载

webview 正在模拟器中加载,但未在设备中加载

在 UIWebView 中加载请求之前修改 URL

URL 不会在 UIWebView 中加载,但会加载到 safari 浏览器中

如何在Swift中的UIWebView中加载URL?

在 UIWebview 中加载带有帖子的 URL 的问题