Search code examples
iosnsurlsessionnshttpcookie

Creating a non-tracking in-app web browser


I am trying to create a webview (as an exercise) that does not track or store any browsing history locally.
I have made it so that when the webview is closed, it calls the following

[[NSURLSession sharedSession]resetWithCompletionHandler:^{}];

but I am finding that things like google search history persists some how between sessions. I have also tried clearing cookies separately through

NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    for (NSHTTPCookie *cookie in [storage cookies]) {
       [storage deleteCookie:cookie];
    }
[[NSUserDefaults standardUserDefaults] synchronize];

still to no avail. Google searches still show when a new web view is created.
Is anyone aware of a way to remove the identifier that google is using to match that search history back to me? I'm concerned it's something like the bundle identifier, which is probably a bit trickier to prevent being read.
Any ideas are appreciated.
Regards,
Luke


Solution

  • Try setting nonPersistentDataStore for WKWebsiteDataStore of WKWebViewConfiguration

    Here is a sample code snippet

    let webVuConfiguration = WKWebViewConfiguration()
    webVuConfiguration.websiteDataStore =WKWebsiteDataStore.nonPersistentDataStore()
    let webView = WKWebView(frame: webviewRect, configuration: webVuConfiguration)