In UIWebView
, it was fairly easy to add UIDataDetectorTypes
to a view:
myUIWebView.dataDetectorTypes = UIDataDetectorTypePhoneNumber;
And so on. However, WKWebView
does not seem to have a similar property. This reference mentions that it has moved to the WKWebViewConfiguration
property at myWebKitView.configuration
, but both the official documentation and the headers themselves make no reference to dataDetectorTypes
.
I'm currently trying to migrate an app from using UIWebView
to WKWebView
, and this app currently has user-configurable UIDataDetectorTypes
. So, is there any way to implement this using the provided API, or would I have to write my own code to parse the HTML?
The property dataDetectorTypes has been added to WKWebViewConfiguration in iOS10.
The options are phoneNumber, link, address, calendarEvent, trackingNumber, flightNumber, lookupSuggestion and all.
A simple workaround for supporting phone number detector in WKWebView would be to apply regex checker in javascript via WKUserScript
WKWebView
data detectors can be set inWKWebViewConfiguration
. Swift version:Valid options are phoneNumber, link, address, calendarEvent, trackingNumber, flightNumber, lookupSuggestion and all. Pass empty
[]
to set to none.The cited article has been updated to reflect changes in the API between iOS 8 betas. As of 8.0.1, there is no
dataDetectorTypes
property onWKWebView
, with no other comparable public API.Until it's added back into the class, you'd have to implement this yourself with NSDataDetector, or resign yourself to using
UIWebView
.Actually WKwebView doesn't have a dataDetectorTypes property. But In iOS 10 WKWebViewConfiguration has.
Try the following code snippet.
This will work only from iOS10 onwards.