美文网首页iOS tipswebView
想要UIWebview使用goBack的时候不刷新界面

想要UIWebview使用goBack的时候不刷新界面

作者: kevinLY | 来源:发表于2016-12-30 10:34 被阅读1938次

起因:在工作中使用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 */

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

相关文章

网友评论

  • lsif的简书:请问楼主, UIWebView使用goBack()返回上个页面,想要刷新,并没有是什么,安卓是可以刷新的
  • 若雨千寻:按照您的方法上传直接被拒绝:joy:
    若雨千寻:@kevinLY 我们运营打我了,不说了,我去挂急诊了:broken_heart:
    kevinLY:@若雨千寻 看来我得加上备注,谨慎使用:joy:
  • seven_七夕:为何我们用了这个方法之后 直接被拒了???
  • 逍然:没有看懂,求解释。
    kevinLY:@随意奔跑 我们的项目中这样做了,已经审核通过了,但是还是要尽量少使用私有API
    逍然:@kevinLY 这个会不会被苹果拒审啊?
    kevinLY:你好,调用的是UIWebView的私有方法,具体也不能看到源码,不做过多的解释,简单地当做技巧使用吧

本文标题:想要UIWebview使用goBack的时候不刷新界面

本文链接:https://www.haomeiwen.com/subject/yohmvttx.html