2015-09-25 115 views
0

我想在xCode 7上用WebView启动一个URL,我的问题是当我点击Build按钮时它总是出现空白页。WebView Xcode 7空白错误

下面是代码:

ViewConntroller.h

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController 
@property (weak, nonatomic) IBOutlet UIWebView *webView; 
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator; 


@end 

ViewController.m

#import "ViewController.h" 

@interface ViewController() 

@end 
@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSString *fullURL= @"http://www.google.com"; 

    NSURL *url = [NSURL URLWithString:fullURL]; 

    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
    [_webView loadRequest:requestObj]; 

} 


- (void)webViewDidStartLoad:(UIWebView *)webView 
{ 
    [_activityIndicator startAnimating]; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    [_activityIndicator stopAnimating]; _activityIndicator.hidden = TRUE; 
} 


- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 

} 

@end 

回答

1

的Xcode 7和iOS 9中引入被称为App Transport Security (ATS)的系统。 这会阻止应用程序加载某些Web资源,并且在WebView中会导致空白屏幕。

这样做的要点是你必须从以下的一个选择:

一)只能使用HTTPS资源 - >也许尝试https://www.google.com(没有测试此我自己)。

b)选择性地选择使用哪个NON-HTTPS资源 - >有关说明,请参见here

c)全部禁用ATS - >不建议,但有时不可避免。为此,请找到Info.plist文件并添加以下内容:

NSAppTransportSecurity(字典) | ----> NSAllowsArbitraryLoads(BOOL)= YES

OR中的源代码视图(右单击文件>打开为>源代码):

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

参见here更多。

运行应用程序时检查Xcode的控制台,看看您是否收到一条错误消息,说您必须暂时将该网站列入白名单。