2

我有 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);
4

2 回答 2

4

文档

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

你必须这样做:

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

一旦初始化,您就无法更改这些值,这就是您现在正在做的事情。

于 2018-08-31T06:58:56.773 回答
3

如果从那里初始化,故事板中还有一个设置。使用属性检查器,然后使用Data Detectors

于 2019-09-18T18:47:46.977 回答