Создание стратегических решений

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

Протокол очень гибок, позволяя Вам сделать широкий диапазон из стратегических решений. Например, можно реализовать делегата политики, чтобы зарегистрировать URL-запросы, проверить на образцы, которые Вы не могли бы разрешить, блокировать определенные веб-сайты, типы блока файлов, и даже блокировать IP-адреса. Протокол предоставляет рычаги Вам для прерывания запросов — Вы реализуете фактические стратегические решения.

Например, выполните эти шаги для изменения Миниприложения браузера, расположенного в /Developer/Examples/WebKit проигнорировать выбрало URLs:

  1. Открытый MyDocument.nib использование Интерфейсного Разработчика и набора WebView policyDelegate выход к File’s Owner (экземпляр MyDocument).

  2. Реализация webView:decidePolicyForNavigationAction:request:frame:decisionListener: отфильтровать URL-запросы. В этом примере, URL-запросах с именами хоста, заканчивающимися в company.com проигнорированы.

    - (void)webView:(WebView *)sender decidePolicyForNavigationAction:(NSDictionary *)actionInformation
            request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id)listener {
        NSString *host = [[request URL] host];
        if ([host hasSuffix:@"company.com"])
            [listener ignore];
        else
            [listener use];
    }