Не удается получить WebKit для отображения веб-страницы - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь понять, как отобразить веб-страницу в моем приложении IOS.Я пытался внимательно следить за тем, какую информацию я могу найти.Вот что я использую:

@implementation FirstViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.productURL = @"http://google.com/";

    NSURL *url = [NSURL URLWithString:self.productURL];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    _webView = [[WKWebView alloc] initWithFrame:self.view.frame];
    [_webView loadRequest:request];
    _webView.frame = CGRectMake(self.view.frame.origin.x+50,self.view.frame.origin.y+50, self.view.frame.size.width-100, self.view.frame.size.height-200);
    printf("\nReady to add the Subview");
    self.view.backgroundColor = [UIColor blueColor];
    [self.view addSubview:_webView];
    printf("\nSubView has been added");
 }

@end

В приведенном выше кадре смещение, чтобы я мог его покрасить и увидеть, что подпредставление будет расположено там.Веб-страница должна отображаться в подпредставлении, насколько я понимаю, но я просто получаю пустую страницу.

Я также добавил словарь NSExceptionDomains в свой Info.plist и добавил google.com, в котором словарь содержит набор NSIncludeSubdomainsв true, а NSExceptionAllowsInsecureHTTPLoads - в истинное мышление, которое может быть проблемой, но безрезультатно.Я перепробовал несколько URL и одну и ту же вещь.

Как узнать, что происходит, и исправить это?

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Я знаю, что вы нашли решение. Но здесь я хочу объяснить, что не так с кодом. Код на самом деле хорошо. Проблема в том, что вы пытаетесь открыть небезопасный URL http://google.com/. Любой URL, начинающийся с http: //, будет заблокирован iOS. Только URL-адреса, начинающиеся с https: //, будут разрешены без каких-либо «настроек безопасности транспорта приложений».

В вашем случае у вас есть 2 варианта:

  1. Добавить параметры безопасности транспорта приложения.
  2. Убедитесь, что вы звоните только по https: // URL. Вы можете изменить https://google.com, и он должен работать без добавления приложения Транспорт Настройки безопасности.

Что касается опций, которые вы добавляете «Разрешить произвольные загрузки», то это нормально для тестирования, но что вам действительно нужно сделать, это добавить исключительные домены в настройках безопасности транспорта приложения. Таким образом, ваше приложение принимает только связанные URL-адреса, а не ЛЮБОЙ старый URL-адрес, который мог быть открыт злонамеренным внедрением URL-адреса.

0 голосов
/ 26 марта 2019

Я нашел проблему!Очевидно, мне нужно было добавить ключ «Параметры безопасности транспорта приложения» в качестве словаря в мой Info.plist и добавить ключ «Разрешить произвольные загрузки» в качестве значения true.Теперь он отображает!

Я не мог найти это раньше, но когда я это сделал и добавил, он отлично работал с кодом, как указано выше.

...