flutter - appwebview 中的 contentblocker 问题
问题描述
嗨,我尝试使用 ContentBlocker 阻止广告,但它不起作用,我尝试使用 androidShouldInterceptRequest 并且它工作正常但无法在 ios 上进行测试我只是尝试阻止所有包含“voiranime”的 url,我使用该正则表达式“。 *" 但不工作
contentBlockers:[
ContentBlocker(
trigger: ContentBlockerTrigger(urlFilter: ".*voiranime.*",),
action: ContentBlockerAction(
type: ContentBlockerActionType.BLOCK
)
),
],
解决方案
安卓
InAppWebView(
initialOptions: InAppWebViewGroupOptions(
android: AndroidInAppWebViewOptions(
useShouldInterceptRequest: true,
),
),
androidShouldInterceptRequest: (controller, request) async {
var url = request.url.toString();
var i = 0;
while(i<adblock.length){
if(url.contains(adblock.elementAt(i))){
return WebResourceResponse();
}
i++;
}
});
我的变量 adblock 只是这样的过滤器列表
List<String> ads(){
List<String> list = [];
list.add("imasdk.googleapis.com");
list.add("rtmark.net");
list.add("offerimage.com");
list.add("xadsmart.com");
list.add("cloudfront.net");
list.add("in-page-push.com");
return list;}
如果需要,您可以添加其他人
IOS
您必须将 ContentBlocker 与正则表达式一起使用
推荐阅读
- ios - 将位置源从 GPS 切换到本地 `gpx` 文件
- c++ - Gtk:ERROR 断言失败:accel_entry_ht == NULL
- scala - 从 Int 转换为 char -> string -> double -> int
- c# - 使用打开的 xml 将插图形状从另一个 word 文档复制粘贴到 word 文档
- pandas - 叶热图未出现
- python-3.x - 使用 Pandas 查找两个数据帧时间列之间缺失的时间数据?
- regex - PowerShell 中的正则表达式从 Active Directory 中的 Managedby 属性获取用户名
- reactjs - 调用useState的set函数导致死循环
- jquery - 使用 JQuery 函数取消选中单选按钮
- python - python中的继承:在现实生活中正确使用__init__和super()