uniapp的webview嵌套页面中的广告,js文件、图片文件等如何屏蔽

场景:

webview嵌套了一个在线播放页面,但是播放页面中还有广告js,广告图片等

解决方法:

使用webviewObject的overrideResourceRequest

实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 获取当前页面 webview
currentWebview = this.$scope.$getAppWebview()
// 需要屏蔽的资源路径列表
const filterUrls = ['cnzz', 'umeng']
const urlFilter = _.map(filterUrls, f => {
return {
// 正则匹配
match: `.*${f}.*`,
// 将屏蔽的文件重定向到此文件,仅支持本地资源地址,如"_www"、"_doc"、"_downloads"、"_documents"等开头的路径。
redirect: '_www/static/override/none.js'
}
})
// 调用 overrideResourceRequest
currentWebview.overrideResourceRequest(urlFilter)

文档

webviewObject的overrideResourceRequest方法

另有 webviewObject的overrideUrlLoading方法可禁止webview打开指定的url或者app