带有UIWebView的iOS应用程序会显示空白屏幕

时间:2016-02-02 17:57:25

标签: ios objective-c iphone uiwebview

我是iOS开发和xCode的新手,想要创建一个包含全屏webview的简单应用。

我找到了以下教程:webview tutorial

我按照上面提到的步骤操作,当我在模拟器中运行应用程序时,它只是给了我一个空白屏幕。

然后我下载了源代码,运行它,我仍然得到一个空白屏幕。所以有些东西告诉我它与代码无关,但可能有某种配置?据我所知,我有一个WiFi连接,因为wifi图标位于屏幕顶部的状态栏中。 如有必要,我将很乐意发布任何相关代码。

谢谢!

3 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为您尝试发送http请求,iOS的App传输安全性仅允许https请求,除非您在plist中明确指定。您可以使用

从上述检查中过滤特定域
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <!--Include to allow subdomains-->
            <key>NSIncludesSubdomains</key>
            <true/>
            <!--Include to allow HTTP requests-->
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <!--Include to specify minimum TLS version-->
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
        </dict>
    </dict>
</dict>

或者您可以通过在info.plist文件中添加以下内容来禁用整个传输安全性。

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

答案 1 :(得分:0)

而不是“http:// ...”使用“https://”网址。 IOS有一个相对较新的限制,禁止加载不安全的URL,必须通过Info.plist中的“AllowArbitaryLoads = YES”键删除。 (创建关键“App Transport Security”,展开它并使用BOOL值创建ArbitaryLoads一个))

答案 2 :(得分:0)

UIWebView *webview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width ,self.view.frame.size.height)];
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]];
[webview loadRequest:nsrequest];
[self.view addSubview:webview];

试试这个,绝对有助于你。