我正在尝试在 xCode 7 上使用 WebView 启动一个 URL,我的问题是当我点击“构建”按钮时它总是显示一个空白页面。
代码如下:
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
最佳答案
Xcode 7 和 iOS 9 引入了一个名为 App Transport Security (ATS) 的系统. 这将阻止应用程序加载某些网络资源,并且在 WebView 中这将导致空白屏幕。
要点是您必须从以下选项中选择一项:
a) 只使用 HTTPS 资源 -> 也许试试 https://www.google.com (我自己没有测试过)。
b) 有选择地选择要使用的非 HTTPS 资源 -> 请参阅 here进行解释。
c) 一起禁用 ATS -> 不建议,但有时不可避免。为此,找到您的 Info.plist 文件并添加以下内容:
NSAppTransportSecurity(字典) | ----> NSAllowsArbitraryLoads( bool ) = 是
或在源代码 View 中(右键单击文件 > 打开为 > 源代码):
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
参见 here了解更多。
在运行应用程序时检查 Xcode 的控制台,看看您是否收到一条错误消息,提示您必须暂时将此站点列入白名单。
关于ios - WebView Xcode 7 空白错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32779273/