Objective-C UIWebView无法加载网站

时间:2015-09-08 19:18:20

标签: ios objective-c uiwebview

我正在尝试让UIWebView暂时显示google.com,但它没有加载:

我只是得到一个空白的屏幕

·H

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

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

@end

的.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    NSURL *targetURL = [NSURL URLWithString:@"http://www.google.com"];
    NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
    [_webView loadRequest:request];

    // Do any additional setup after loading the view, typically from a nib.
}



- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

我做的是创建Web视图的以下内容:

  • 创建了一个新的UIViewController场景
  • 添加了一个UIWebView
  • 将webview连接到.h控制器
  • 让我的场景成为初始场景
  • 跑出应用程序,没有加载,没有错误,只是直接进入UIViewController,没有任何内容,请帮忙。

我尝试添加以下内容:

[self.view addSubview:self.webView];

没有做任何事

7 个答案:

答案 0 :(得分:6)

如果您在iOS上运行Web View&gt; 9.0,可能您还没有将NSAppTransportSecurity密钥添加到项目* .plist文件中,因此该应用无法请求任何网址。

如果您想要允许所有URL请求,则应将以下代码添加到项目plist文件中:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

否则,如果您只想允许特定的URL请求:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>allowed.domain.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

答案 1 :(得分:1)

如果你真的使用网络浏览的插座,那么无论如何都应该这样做。

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

答案 2 :(得分:1)

添加断点,检查unsigned int var; sscanf(argv[1], "%X", &var); // will read 0x55 sscanf(argv[2], "%X", &var); // will read 0x66 and so on 是否为零, 如果没有,那么

NSURLRequest *request

尝试对网址进行编码...希望它能正常工作

答案 3 :(得分:0)

尝试添加:

- (void)viewDidLoad {

    [super viewDidLoad];

    //Check if the web view is linked correctly from the XIB
    NSLog(@"WebView : %@",_webView);
    _webView.delegate = self;


    NSURL *targetURL = [NSURL URLWithString:@"http://www.google.com"];
    NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
    [_webView loadRequest:request];

    // Do any additional setup after loading the view, typically from a nib.
}

并在您的类中添加此新方法(也在te .h中实现UIWebViewDelegate)

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
   //Check if the web view loadRequest is sending an error message
   NSLog(@"Error : %@",error);
}

答案 4 :(得分:0)

您是否恰好在Xcode 7中构建并定位到iOS 9?

如果是这样,您可能会遇到通过https访问网站的新默认安全要求,详见此处:

Disabling ATS for an in-app browser in iOS 9?

答案 5 :(得分:0)

也许问题是你调用seter(_webView)。试一试:

[self.webView loadRequest:request];

答案 6 :(得分:0)

在Info.plist

中允许AppTransport权限为yes