2015-11-03 2 views
1

Я работаю над проектом, где я хочу, чтобы загрузить интернет URL к моему UIWebViewнагрузки интернет гиперссылка на WebView

мне удалось загрузить локально сохраняемый HTML-файл, как это:

if let url = NSBundle.mainBundle().URLForResource("index", withExtension: "html") { 
     webView.loadRequest(NSURLRequest(URL: url)) 
    } 

Так на основе, что я пытался делать это так:

if let url = NSURL(string: "http://google.com") { 
      webView.loadRequest(NSURLRequest(URL: url)) 
     } 

Но это не похоже на работу.

ответ

2

Apple представила систему безопасности для приложений с iOS9. Это новая функция безопасности, которая применяет определенные методы безопасности при работе с веб-запросами. Например, он не позволяет отправлять запросы через HTTP, поскольку он разрешает только HTTPS-запросы. Хорошая новость заключается в том, что вы можете изменить эти требования безопасности, добавив в Info.plist файл вашего проекта:

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

Просто надо знать, что это обходит все требования безопасности, которые пришли с АТС. Вы должны использовать это в производстве, только если нет другого пути. Если доступ только 1 нон HTTP URL можно отключить АВР для этого 1 домена только:

<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/> 
    </dict> 
    </dict> 
</dict> 
+0

Будет ли этот результат в Apple, отвергая приложение? –

+0

Если у вас есть веские основания для этого, вы должны быть в порядке. Но если домен, который вы загружаете, предлагает HTTPS, вы должны определенно использовать https: // url – joern

+0

. Я попробую и посмотрю, что произойдет! Большое спасибо! –

1

Как говорит Йорн, обновление безопасности требует, чтобы все запросы быть через HTTPS, если вы не хотите, чтобы заменить его.

Таким образом, основное быстрое исправление этого вопроса - это просто изменение ссылки на https.

Так что-то вроде этого:

if let url = NSURL(string: "https://google.com") { 
     webView.loadRequest(NSURLRequest(URL: url)) 
    } 
0

Try ниже код:

let url = "http://google.com" 
let requestURL = NSURL(string:url) 
let request = NSURLRequest(URL: requestURL!) 
WebView.loadRequest(request) 
Смежные вопросы