2015-09-25 112 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的控制檯,看看您是否收到一條錯誤消息,說您必須暫時將該網站列入白名單。