微信小程序+.NET(九) 小程序之简单的广告拦截

本文介绍了一种在微信小程序中嵌入外部网站时处理垃圾广告的方法,通过URL拦截机制阻止误点广告,同时保持用户体验。文章详细解释了该方法的局限性和在不同情况下的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微信小程序之简单的广告拦截

  导语:我们在web-view内嵌网上的某些网站比如我内嵌的小说网站,会包含某些影响使用和含有诱导链接的垃圾广告,这时我们该怎么处理呢?
  首先,要是自己写的网站,就可以自己添加防范措施防止垃圾广告嵌入,比如针对XSS跨站脚本SQL注入等的输入校验防范措施,或是部署在用户端/服务端URL拦截等。
  而我们在不需要自己重新搭建网站一个已经存在的网站而是直接嵌入别人的网站时,怎么处理误点垃圾广告操作?
  我的方法是参考的Url拦截机制,拦截后跳转回web-view页面,并加载误点时正在访问的页面,首先说一下我的方法的限制:
  1.针对那种经过特别处理的垃圾广告网站,比如说:a.点进去之后进入垃圾网站,点击返回时垃圾网站会再次给你重定向到另一个垃圾网站;b.或是垃圾网站设置了跳转限制,在你Url拦截到要跳转到小程序页面时,他会在你跳转之前先跳转到他的页面。

之后我想了想,上述ab两种情况,对于浏览器这种流氓行为有时是有效的。不过当嵌入小程序,因为小程序和web-view内嵌的网页之间的隔离性,理论上说ab两种行为也会被拦截

  2.由于web-view自定义顶部导航失效,我的转码阅读页面和web-view页面都嵌入了tabbar里,
在这里插入图片描述
如下是三种跳转方式间的区别,可以看到我只有用wx.reLaunch(),而我也尝试过其他两种reDirectTo()navigateTo()确实是无效的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样会将所有页面关闭,目前我还没有找到解决方案。

需求:某个替代web-view的自定义导航栏里的自定义按钮的方案:
实现:在访问web-view页面时点击某个按钮(而不是我现在的底部tabBar)跳转到阅读器模式
解决:1.会省掉阅读器模式的刷新按钮,直接就不用自定义顶部导航栏
   2.不用tabBar模式,就可以不用wx.reLaunch()跳转,无需关闭所有页面)

要是有读者有好的解决方案欢迎下方留言,谢谢!

下面贴上我完整的messageShow()代码:

  messageShow : function(e){
    console.log(e.detail);
    var curUrl = e.detail.src;
    if (curUrl.substring(0, 20) == "https://m.88dush.com" ){
      if (curUrl.substring(21, 25) == "book" ){

        wx.setStorageSync('curUrl',curUrl);
        
        try {
          var thisUrl = wx.getStorageSync('curUrl');
          if (thisUrl) {
            console.log("设置成功 curUrl=" + thisUrl);
          }
        } catch (e) {
          console.log(e);
        }
      }
    } 
    else if (curUrl.substring(0, 21) != "https://so.88dush.com"){
      console.log("垃圾广告");
      try {
        var thisUrl = wx.getStorageSync('curUrl');
        if (thisUrl) {
          //console.log(" curUrl=" + thisUrl);
          wx.reLaunch({
            //url: '../searchbaidu/searchbaidu?url=' + thisUrl + '&sid=' + util.formatTime(new Date()),
            url: '../searchbaidu/searchre?url=' + thisUrl,
          })
        }/*else{
          wx.reLaunch({
            url: '../index/index',
          })
        }*/
      } catch (e) {
        console.log(e);
      }
      //wx.navigateBack();
    }
  },

wxml代码

<!-- 小说搜索接口-->
<!-- 有参 -->
<!-- <web-view  src="https://so.88dush.com/search/index.php?search_field=0&q={{keyword}}" bindload="messageShow"
  wx:if="{{keyword!=''}}"></web-view> -->
<web-view src="https://so.88dush.com/search/index.php?q={{keyword}}" bindload="messageShow"
  wx:if="{{keyword!='' && url==''}}"></web-view>

<!-- 传参 -->
<web-view src="{{url}}" bindload="messageShow"
  wx:else></web-view>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值