5

wkdatdetectortypes = .all is not detecting any of the data like phone numbers, address etc. in wkwebview. This is happening only when loading the html string using javascript. If it is done using loadHTMLString, the data is detected properly. can anyone help me in the regard. thank you.

here is my code for reference:

    let config = WKWebViewConfiguration()

    config.dataDetectorTypes = [WKDataDetectorTypes.all]



    webview = WKWebView(frame: .zero, configuration: config)

    webview.isUserInteractionEnabled = true

    webview.backgroundColor = .white

    webview.navigationDelegate = self

    webview.uiDelegate = self

    webview.allowsLinkPreview = true

    webview.translatesAutoresizingMaskIntoConstraints = false



    let bundleURL = Bundle.main.resourceURL!.absoluteURL

    let html = bundleURL.appendingPathComponent("index.html")           //index.html is in the same project file path.

    webview.loadFileURL(html, allowingReadAccessTo:bundleURL)



    let testString = "My contact number is: 1243233423"

//loading the html string using javascript.

    let stringToBeLoaded = "var text=\"\(testString)\";showText(text);        //showText() is a method in the index.html file to set the content.

    webview.evaluateJavaScript(stringToBeLoaded, completionHandler: nil)          //Doing this way is not detecting the phone number

//loading the html string

    webview.loadHTMLString(testString, baseURL: nil)          //Doing this way is identifying the phone number and converting it to a clickable link from which I can call to this number.

0 Answers0