ionic3 出现莫名广告

本文分析了应用中出现的莫名广告弹窗问题,并通过排查确定为HTTP劫持所致。通过对WebView的定制化处理,实现了对广告URL的有效拦截。

应用上线出现 有莫名其妙的广告弹出。

1,DNS被劫持
2,第三方包带广告
3,Http被劫持

wifi和4G网都出现了广告,所以可以直接排除DNS被劫持的问题  

广告页只会在H5的页面出现,所以基本可以排除第三方包带广告的问题,所以问题基本可以确定是Http被劫持了。

网上几乎所有文章的解决方案都是使用Https替换Http。

通过查看Android原生WebView的拦截日志,发现了广告页面的地址是会被拦截到的,而我们自己的H5页面放在自己的服务器上,IP和端口号是固定的当前使用服务器的ip和端口,广告页的ip和端口肯定和我们是不一致的。拦截了url,将广告url拦截并且不允许它继续执行打开。

webView.setWebViewClient(new WebViewClient() {
// Load opened URL in the application instead of standard browser
// application
public boolean shouldOverrideUrlLoading(WebView view, String url) {
showLogInfo("拦截到的url----"+url);
String advertising="http://"+sharedPreferencesUtil.getData(Constant.IP, RequestConfig.IP) +":"+sharedPreferencesUtil.getData(Constant.PORT,RequestConfig.IPPORT);
if (url.contains(pre)) {
Map<String, String> map = getParamsMap(url, pre);
String code = map.get("code");
String data = map.get("data");
parseCode(code, data); return true;
}
else if(!url.contains(advertising)){
showLogError("拦截到植入广告,广告的url——"+url); return true; }
else{
return false; } }
}
);
  

转载于:https://www.cnblogs.com/wupeng88/p/9673247.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值