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
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)
To compliment Durai Amuthan.H's answer, here is the answer for us plebs who still like to use Obj-C
WKWebViewConfiguration * config = [WKWebViewConfiguration new];
config.websiteDataStore = [WKWebsiteDataStore nonPersistentDataStore];
webView = [[WKWebView alloc]initWithFrame:viewFrame configuration:config];
来源:https://stackoverflow.com/questions/42994553/creating-a-non-tracking-in-app-web-browser