首页 > 解决方案 > appwebview 中的 contentblocker 问题

问题描述

嗨,我尝试使用 ContentBlocker 阻止广告,但它不起作用,我尝试使用 androidShouldInterceptRequest 并且它工作正常但无法在 ios 上进行测试我只是尝试阻止所有包含“voiranime”的 url,我使用该正则表达式“。 *" 但不工作

contentBlockers:[
           ContentBlocker(
               trigger: ContentBlockerTrigger(urlFilter: ".*voiranime.*",),
               action: ContentBlockerAction(
                   type: ContentBlockerActionType.BLOCK
               )
           ),
         ],

标签: flutterwebviewflutter-inappwebviewsafari-content-blocker

解决方案


安卓

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 与正则表达式一起使用


推荐阅读