代码之家  ›  专栏  ›  技术社区  ›  Itsmeromka

WKWebView必须停止检测电话号码

  •  0
  • Itsmeromka  · 技术社区  · 7 年前

    我有一个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 回复  |  直到 7 年前
        1
  •  4
  •   Papershine    7 年前

    docs :

    WKWebViewConfiguration仅在首次初始化web视图时使用。创建web视图后,不能使用此类更改其配置。

    你必须这样做:

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

    一旦初始化,就不能更改值,这就是您现在要做的。

        2
  •  2
  •   ullstrm    6 年前

    Data Detectors