Отключить загрузку изображений в WKWebView ios - PullRequest
0 голосов
/ 23 апреля 2019

Я создаю приложение, в котором supremenewyork.com веб-сайт загружен в WKWebView. Но когда сайт загружен, я не хочу загружать изображения в него. Как я могу сделать это в Objective-C.

1 Ответ

2 голосов
/ 23 апреля 2019

У меня есть следующие, которые мешают загружать изображения сайта в WKWebView. Я использовал правила блокирования контента, которые документированы официальным веб-сайтом Apple. Проверьте здесь. Создание блокировщика контента .

- (void)viewDidLoad {
    [super viewDidLoad];

//    id blockRules = @" [{ \"trigger\": { \"url-filter\": \".*\", \"resource-type\": [\"image\"] }, \"action\": { \"type\": \"block\" } }, { \"trigger\": { \"url-filter\": \".*\", \"resource-type\": [\"style-sheet\"]          }, \"action\": { \"type\": \"block\" } }, { \"trigger\": { \"url-filter\": \".*.jpeg\" }, \"action\": {              \"type\": \"ignore-previous-rules\" } }] ";

    id blockRules = @" [{ \"trigger\": { \"url-filter\": \".*\", \"resource-type\": [\"image\"] }, \"action\": { \"type\": \"block\" } }] ";

    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.supremenewyork.com/"]];

    [[WKContentRuleListStore defaultStore] compileContentRuleListForIdentifier: @"ContentBlockingRules" encodedContentRuleList:blockRules completionHandler:^(WKContentRuleList *contentRuleList, NSError *error) {

        if (error != nil) {
            NSLog(@"Error = %@", error.localizedDescription);
        }
        else {
            WKWebViewConfiguration *configuration = self.webView.configuration;
            [[configuration userContentController] addContentRuleList:contentRuleList];

            dispatch_async(dispatch_get_main_queue(), ^{
                [self.webView loadRequest:request];
            });
        }
    }];
}

Выход: 1 Disable Image Load 1

Выход: 2 Disable Image Load 2

...