Ios 如何在swift中删除WKWebview的所有数据存储
我已经考虑过几种方法来实现这一点,但无法实现 我想在两个地方清除存储的cookie和其他数据。我有一个注销按钮,我想清除那里的登录信息。然后当用户打开webkit网页时,信息也不会存储在那里。我看了这里,但这一个不断给我错误的地方,它的格式不正确,所以ide一直说添加一个逗号或添加一个;发射型计算机断层扫描仪。。。所以这不起作用 我想做的是在查看加载的webkit是删除cookies和东西,然后加载网页。但我怎么能在斯威夫特? 这是我正在使用的代码Ios 如何在swift中删除WKWebview的所有数据存储,ios,swift,cookies,wkwebview,Ios,Swift,Cookies,Wkwebview,我已经考虑过几种方法来实现这一点,但无法实现 我想在两个地方清除存储的cookie和其他数据。我有一个注销按钮,我想清除那里的登录信息。然后当用户打开webkit网页时,信息也不会存储在那里。我看了这里,但这一个不断给我错误的地方,它的格式不正确,所以ide一直说添加一个逗号或添加一个;发射型计算机断层扫描仪。。。所以这不起作用 我想做的是在查看加载的webkit是删除cookies和东西,然后加载网页。但我怎么能在斯威夫特? 这是我正在使用的代码 class RegisterViewContr
class RegisterViewController: UIViewController, WKNavigationDelegate , WKUIDelegate{
let url = “url”
@IBOutlet weak var containerView: UIView!
var webView: WKWebView?
@IBOutlet weak var progressView: UIProgressView!
@IBOutlet weak var backButton: UIBarButtonItem!
@IBAction func barBackButtonAction(sender: AnyObject) {
if self.webView!.canGoBack {
self.webView!.goBack()
}
}
@IBOutlet weak var forwardButton: UIBarButtonItem!
@IBAction func barForwardButtonAction(sender: AnyObject) {
if self.webView!.canGoForward{
self.webView!.goForward()
}
}
override func viewDidAppear(animated: Bool){
super.viewDidAppear(animated)
if(webView != nil)
{
let w = self.containerView.frame.width
let h = self.containerView.frame.height
webView!.frame = CGRect(x: 0, y: 0, width: w, height: h)
self.containerView.addSubview(self.webView!
}
}
override func viewDidLoad() {
super.viewDidLoad()
cookieMonster()
self.webView = WKWebView()
self.webView?.navigationDelegate = self
self.webView?.UIDelegate = self
self.webView!.addObserver(self, forKeyPath: "estimatedProgress", options: .New, context: nil)
let req = NSURLRequest(URL: url!)
self.webView!.loadRequest(req)
self.webView!.allowsBackForwardNavigationGestures = true
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
print("WebView content loaded.")
cookieMonster()
progressView.setProgress(0.0, animated: false)
checkToSeeIfICanGoBack()
}
func webView(webView: WKWebView,didStartProvisionalNavigation navigation: WKNavigation)
{
cookieMonster()
}
func cookieMonster()
{
let storage = NSHTTPCookieStorage.sharedHTTPCookieStorage()
for cookie in storage.cookies! {
storage.deleteCookie(cookie)
print("Eating cookies")
}
NSUserDefaults.standardUserDefaults().synchronize()
}
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>){
if (keyPath == "estimatedProgress") {
progressView.hidden = webView!.estimatedProgress == 1
progressView.setProgress(Float(webView!.estimatedProgress), animated: true)
}
}
类RegisterViewController:UIViewController、WKNavigationDelegate、WKUIDelegate{
让url=“url”
@IBOutlet弱var containerView:UIView!
var webView:WKWebView?
@IBVAR progressView:UIProgressView!
@IBVar backButton:UIBarButtonItem!
@iAction函数barBackButtonAction(发送方:AnyObject){
如果self.webView!.canGoBack{
self.webView!.goBack()
}
}
@iButtonim按钮:uiBarButtonim!
@iAction func barForwardButtonAction(发件人:AnyObject){
如果self.webView!.canGoForward{
self.webView!.goForward()
}
}
覆盖功能视图显示(动画:Bool){
super.viewdide显示(动画)
如果(网络视图!=nil)
{
设w=self.containerView.frame.width
设h=self.containerView.frame.height
webView!.frame=CGRect(x:0,y:0,宽度:w,高度:h)
self.containerView.addSubview(self.webView!
}
}
重写func viewDidLoad(){
super.viewDidLoad()
库克怪兽()
self.webView=WKWebView()
self.webView?.navigationDelegate=self
self.webView?.UIDelegate=self
self.webView!.addObserver(self,forKeyPath:“estimatedProgress”,选项:。新建,上下文:nil)
let req=NSURLRequest(URL:URL!)
self.webView!.loadRequest(请求)
self.webView!.AllowsBackforwardNavigationPigests=true
}
func webView(webView:WKWebView,didfishnavigation:WKNavigation!){
打印(“已加载WebView内容”)
库克怪兽()
progressView.setProgress(0.0,动画:false)
checkToSeeIfICanGoBack()
}
func网络视图(网络视图:WKWebView,didStartProvisionalNavigation:WKNavigation)
{
库克怪兽()
}
func cookieMonster()
{
let storage=nshttpcookeStorage.sharedhttpcookeStorage()
用于存储中的cookie.cookies{
storage.deleteCookie(cookie)
打印(“吃饼干”)
}
NSUserDefaults.standardUserDefaults().synchronize()
}
重写func observeValueForKeyPath(键路径:String?,对象对象的类型:AnyObject?,更改:[String:AnyObject]?,上下文:UnsafeMutablePointer){
如果(关键路径==“estimatedProgress”){
progressView.hidden=webView!.estimatedProgress==1
progressView.setProgress(Float(webView!.estimatedProgress),动画:true)
}
}
}