X5webview去掉分享功能和缓存功能

x5webview比原生的webview适配更好,加载更快,对音视频的兼容性更好,具备独特的优势

1) 速度快:相比系统webview的网页打开速度有30+%的提升;

2) 省流量:使用云端优化技术使流量节省20+%;

3) 更安全:安全问题可以在24小时内修复;

4) 更稳定:经过亿级用户的使用考验,CRASH率低于0.15%;

5) 兼容好:无系统内核的碎片化问题,更少的兼容性问题;

6) 体验优:支持夜间模式、适屏排版、字体设置等浏览增强功能;

7) 功能全:在Html5、ES6上有更完整支持;

8) 更强大:集成强大的视频播放器,支持视频格式远多于系统webview;

9) 视频和文件格式的支持x5内核多于系统内核

10) 防劫持是x5内核的一大亮点

通常来说接入了x5webview以后,基本都会觉得满意,但是你可能会面临各种场景,其中就是要求页面显示的一些按钮需要定制,而官方没有提供有关的api调用,并且也不支持定制,给钱都找不到人帮忙,比如:

X5webview去掉分享功能和缓存功能

如果你是一个收费视频内容,当你打开的时候,突然用户可以缓存和下载了,然后用户下载原视频,还可以保存在用户端,随时看,甚至还可以再加工,这时候老板是不是要震怒了?

部分的app使用了一些魔板打开的,分享出来的网页地址是本地模板目录,在微信端是根本打不开的,这时候bug该怎么修复呢?

官方文档没有API对缓存和分享功能的移除,通过在官方网站查找有关的资料,终于的出来答案,不支持。(论坛地址)

是不是很绝望,下面分享一个已经做出来的效果,去掉分享功能

X5webview去掉分享功能和缓存功能

再发一个两个功能都去掉了的

X5webview去掉分享功能和缓存功能

这样就可以处理了,而且完全不影响x5webview的功能和业务。

有网友提供了其他的解决方案如下:

getWindow().getDecorView().addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@RequiresApi(api = Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
ArrayList<View> outView = new ArrayList<View>();
getWindow().getDecorView().findViewsWithText(outView, "QQ浏览器", View.FIND_VIEWS_WITH_TEXT);
int size = outView.size(); if (outView != null && outView.size() > 0) {
outView.get(0).setVisibility(View.GONE);
}
}
});

  

实际操作来说,这种分分钟能卡死,而且反复进入,性能的消耗巨大,不是一种推荐的做法,而且现在也无法根据关键字匹配到控件了。

而实际上,有更加方便的操作,对性能开销影响忽略到不计,就可以处理了,而且完全不影响x5webview的功能和业务。后面有时间再更新解决方案。

X5webview完美去掉分享功能和缓存功能(2)

上一篇:Xcode7 beta 网络请求报错:The resource could not be loaded because the App Transport Security policy requir


下一篇:The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.问题解决