WKWebView должен прекратить обнаружение телефонных номеров - PullRequest
0 голосов
/ 31 августа 2018

У меня есть приложение WKWebView, и я хочу, чтобы оно не анализировало номера телефонов и ссылки в текстах, я установил

webView.configuration.dataDetectorTypes = [
     WKDataDetectorTypes.address
];

перед фактической загрузкой страницы, но это не помогает, полный код выглядит как

let url = URL(string: link)
var urlRequest = URLRequest(url: url!);

var UUID = String();
if ASIdentifierManager.shared().isAdvertisingTrackingEnabled {
    UUID = ASIdentifierManager.shared().advertisingIdentifier.uuidString;
}

webView.customUserAgent = String(
    format: "%@/%@ %@ EmbeddedBrowser DeviceUID: %@",
    getAppName(),
    getAppVersion(),
    UIWebView().stringByEvaluatingJavaScript(from: "navigator.userAgent")!,
    UUID
);

webView.configuration.dataDetectorTypes = [
    WKDataDetectorTypes.address
];

webView.navigationDelegate = self;
webView.uiDelegate = self;

webView.stopLoading();
webView.load(urlRequest);

1 Ответ

0 голосов
/ 31 августа 2018

Из документов :

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

Вы должны сделать это:

let config = WKWebViewConfiguration()
config.dataDetectorTypes = [.address]
let webView = WKWebView(frame: .zero, configuration: config)

вы не можете изменить значения после его инициализации, что вы и делаете сейчас.

...