【问题标题】:url not loading in UIWebViewurl 未在 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];               
}

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

【问题讨论】:

  • 它显示了什么吗?有效吗?

标签: iphone objective-c uiwebview


【解决方案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 的代码来查看错误):

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-01
        • 2011-09-12
        • 2011-11-17
        • 1970-01-01
        • 2012-08-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多