WKWebView如何优雅的清除历史记录

2020-10-19  本文已影响0人  桥下醉翁

需求说明

可以想到的原生解决方案

既然是WKWebView,那就查找原生的API吧。

// 效果不是很好的解决方案
[self loadHTMLString:@"" baseURL:nil];
// 某度搜索到的方案,可惜我在WKWebView中的代理过滤了about:blank
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]];
// 我选择了私有方法,审核通过并未被拒
@try {
        #pragma clang diagnostic push
        #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
        [weakself.backForwardList performSelector:NSSelectorFromString(@"_removeAllItems")];
        #pragma clang diagnostic pop
    } @catch (NSException *exception) {}

继续优化

清空当前页面内容的方案,实现的效果并不理想,并非100%清空!!!并非100%清空!!!并非100%清空!!!
一番扯皮讨论后,我们可以曲线救国,在页面JS上做清空不就很简单了嘛!

    DWeakSelf(self);
    [self evaluateJavaScript:@"document.body.innerHTML = '';" completionHandler:^(id result, NSError * _Nullable error) {
    }];

程序运行,效果十分棒棒。
这个时候我就有思路了,能否通过JS清除历史记录呢?
未完,待续。

上一篇 下一篇

猜你喜欢

热点阅读