WKWebKit: нет параметров dataDetectorTypes

В UIWebView было довольно легко добавить UIDataDetectorTypes к представлению:

 myUIWebView.dataDetectorTypes = UIDataDetectorTypePhoneNumber; 

И так далее. Однако WKWebView , WKWebView , не обладает аналогичным свойством. В этой ссылке упоминается, что она переместилась в свойство WKWebViewConfiguration в myWebKitView.configuration , но как официальная документация, так и сами заголовки не ссылаются на dataDetectorTypes .

В настоящее время я пытаюсь перенести приложение с помощью UIWebView на WKWebView , и это приложение в настоящее время имеет настраиваемые пользователем UIDataDetectorTypes . Итак, есть ли способ реализовать это с помощью предоставленного API, или мне нужно написать собственный код для анализа HTML?

Данная статья была обновлена, чтобы отразить изменения в API между бета-версиями iOS 8. Начиная с 8.0.1, в dataDetectorTypes не dataDetectorTypes свойства WKWebView , без другого сопоставимого публичного API.

Пока он не будет добавлен обратно в класс, вам придется реализовать это самостоятельно с помощью NSDataDetector или отказаться от использования UIWebView .

На самом деле WKwebView не имеет свойства dataDetectorTypes . Но в IOS 10 WKWebViewConfiguration есть.

Попробуйте следующий фрагмент кода.

 WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init]; theConfiguration.dataDetectorTypes = WKDataDetectorTypeNone; WKWebView *webView = [[WKWebView alloc] initWithFrame:_someFrame configuration:theConfiguration]; 

Это будет работать только с iOS10 и далее.

Свойство dataDetectorTypes было добавлено в WKWebViewConfiguration в iOS10.

Возможные значения: номер телефона, ссылка, адрес, calendarEvent, номер отслеживания, номер FlightNumber, lookupSuggestion и все.

Простым обходным решением для поддержки детектора телефонных номеров в WKWebView было бы применение проверки регулярных выражений в javascript через WKUserScript

 NSString *jScript = @"document.getElementById(\"main\").innerHTML.replace(/[\+\d]{1}[\d]{2,4}[\s,][\d\s-\\(\\),]{7,}/g, \"<a href=\"tel:\$&\">\$&</a>\")"; WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:jScript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES]; WKUserContentController *wkUController = [[WKUserContentController alloc] init]; [wkUController addUserScript:wkUScript]; WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init]; wkWebConfig.userContentController = wkUController; wkWebV = [[WKWebView alloc] initWithFrame:self.view.frame configuration:wkWebConfig]; 
  • WKWebView + contentInset делает неправильный размер контента
  • Анимация Webkit оставляет на экране нежелательные пиксели
  • Как я могу получить файл с помощью WKWebView?
  • Правильный способ оптимизации анимации CSS 3 для iOS / Mobile Safari?
  • UIWebView застрял после webViewDidStartLoad
  • NSAttributedString initWithData: options: documentAttributes: ошибка: выполняется очень медленно
  • HTML-разбивка на страницы
  • Отключить усиление в WKWebView
  • Удаленный console.log () на устройствах iOS
  • Почему здесь не работает прокрутка импульса? (с использованием -webkit-overflow-scrolling: touch)
  • Включить кеш приложений в WKWebView
  • Interesting Posts

    Приложение вылетает, когда вызывается функция «FIFFishLaunchingWithOptions»

    iOS – Получить результаты заголовка

    статический указатель void в AVFoundation.Framework в примере кода

    Запустить экран, который ведет себя точно так же, как Launch Image

    Fastlane: Как я могу «increment_build_number» только одной цели?

    iPhone – Получить позицию UIView в пределах всего UIWindow

    Лучший способ реализовать «пользовательский пользователь» VoIP на iOS

    Как включить или выключить фонарик с помощью одной кнопки?

    MPMoviePlayerController и базовый сервер HLS Back-сервера

    Ошибка интеграции службы уведомлений AWS

    Бесплатный SDK для сканирования штрих-кода (код 39) в iOS

    Невозможно изменить пользовательский размер UIFont на UIButton

    Как остановить метод viewForAnnotation от переопределения голубого маяка местоположения пользователя по умолчанию в iOS

    Отправить UIImage в LocalwebServer с помощью GCDWebServer

    Как скомпилировать libass для платформы iOS?

    Давайте будем гением компьютера.