iOS tipswebView

想要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 */

谨慎使用,有可能悲剧,作为知识了解即可

上一篇下一篇

猜你喜欢

热点阅读