ios - WebView Xcode 7 空白错误

标签 ios objective-c xcode

我正在尝试在 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/

相关文章:

xcode - 如何从rootViewController中的多级导航更新detailViewController.detailItem

ios - 如何将 APN 认证上传到 Firebase 以进行 FCM

iphone - 我们如何在 uitableviewcell 中放置一个复选框

ios - 导航栏状态,显示和隐藏底部导航栏

ios - Cordova iOS : Alert-Popups and Device-Ready is not firing

ios - iOS - Xcode 中的文件所有者和第一响应者是什么?

objective-c - 在 NSTextView 中检测 Enter/Tab/Up/Down 键?

xcode - 尝试构建用于发布的 XCode 项目时出现 Typedef 重定义错误

android - 适用于 Android/iOS 应用的 OAuth Web 流程

javascript - 使用 Parse Code Cloud Javascript 函数更改 Parse 列的值