想要UIWebview使用goBack的时候不刷新界面
2016-12-30 本文已影响1938人
kevinLY
起因:在工作中使用UIWebView的时候遇到一种情况,当UIWebView进入多级的时候,我们点击返回按钮,这时候会重新加载上一个页面的URL,有时候我们并不想重新加载,而只是想简单地返回,苹果默认的是会刷新上一个页面的,下面的一段代码是为了解决这个问题的。因为调用的是UIWebView的私有方法,由于不能看到其中的源代码,就简单的把它当做一种技巧使用吧!
self.webView = [[UIWebView alloc] initWithFrame:frame];
self.webView.delegate = self;
self.webView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
self.webView.backgroundColor = [UIColor clearColor];
self.webView.scalesPageToFit = YES;
self.webView.contentMode = UIViewContentModeRedraw;
self.webView.opaque = YES;
[self.view addSubview:self.webView];
/** 想要goBack不刷新页面的核心代码 BEGIN */
[[NSUserDefaults standardUserDefaults] setInteger:2 forKey: @"WebKitCacheModelPreferenceKey"];
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey: @"WebKitMediaPlaybackAllowsInline"];
id webView = [self.webView valueForKeyPath:@"_internal.browserView._webView"];
id preferences = [webView valueForKey:@"preferences"];
[preferences performSelector:@selector(_postCacheModelChangedNotification)];
/** 想要goBack不刷新页面的核心代码 END */