检测是不是禁用了 iOS 智能跟踪预防
Posted
技术标签:
【中文标题】检测是不是禁用了 iOS 智能跟踪预防【英文标题】:Detect if iOS Intelligent Tracking Prevention is disabled检测是否禁用了 iOS 智能跟踪预防 【发布时间】:2020-11-18 22:59:31 【问题描述】:由于 ios 14 默认启用智能跟踪预防 (ITP),我想在 WKWebView
中显示一条消息,说明如何禁用 ITP。我不希望他们以其他方式看到该消息(尽管他们必须看到一次)。
似乎没有办法检查 ITP 是否正在运行,如果用户更改了设置,我想阻止用户看到该消息。
如果他们更改了设置,我该如何阻止消息显示?
【问题讨论】:
【参考方案1】:我解决这个问题的方法是检测是否真的写入了 cookie,并相应地修改登陆/直通 url。
private func loadWebView()
load(skipInstructions: false)
webView?.configuration.websiteDataStore.httpCookieStore.getAllCookies( (cookies) in
var skipInstructions:Bool = false
cookies.forEach (cookie) in
skipInstructions = skipInstructions ? skipInstructions : cookie.domain == "api.example.com"
self.load(skipInstructions: skipInstructions)
)
private func load(skipInstructions: Bool)
let url = skipInstructions ? URL(string: "\(self.landingUrl)?skip-instructions")! : URL(string: "\(self.landingUrl)")!
let request = URLRequest(url: url)
self.view.bringSubviewToFront(self.splashScreen)
self.webView?.load(request)
【讨论】:
以上是关于检测是不是禁用了 iOS 智能跟踪预防的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSCrossWebsiteTrackingUsageDescription 请求用户为 WKWebView 禁用 ITP
如何在 TSLint 中启用“仅错误预防”? (禁用样式检查等)