HTML5页面被运营商进行DNS劫持问题及解决方案,app中h5页面源码的获取

时间:2022-11-18 19:13:33

App应用的html5页面经过运营商的移动网络(非wifi网络),被强制插入广告和手机管家的多余信息,在有些场景严重干扰用户的操作,也产生在美丽的页面上加入了不协调的悬浮层。并且这个手机管家类的悬浮层有时间出现,有时间不出现,神出鬼没,虽然你可以通过点击关闭手机手机关键是突然出现,有时候还关闭不了。总之用户不喜欢这种用户不需要的选择,所以干掉它吧!
在app中h5页面源码,可以通过下面代码获得,其中url就是h5页面的源码,简单吧!
分析app收到WebViewJavascriptBridge的页面加载-(void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *url = [NSString stringWithContentsOfURL:webView.request.URL encoding: NSUTF8StringEncoding error:nil];
if (webView.canGoBack)
{
self.exitButton.hidden=NO;
}else
{
self.exitButton.hidden=YES;
}
}
通过分析,一个普通的页面,经过Wi-Fi网络,webViewDidFinishLoad只响应一次就能显示出页面。
经过移动手机网络,需要经过三次webViewDidFinishLoad调用,并且三次的h5源码都相同。
基本上从app无法很好的解决方案,除非你的页面只有一层,只让它成功调用次。若你的应用有二级页面很难控制了。
所以最终的解决方案是h5页面。只需要你访问的h5页面采用的是https不是http就能很好的解决这个问题,完美的解决DNS劫持。当然https需要你购买证书。
2017年1月1日,苹果商店禁止使用http的新应用上架。
谷歌也将要拿http访问的网站开刀了,见文章《洒泪告别 神秘代码终被谷歌逼上绝路》–http://it.sohu.com/20161106/n472448442.shtml
HTML5页面被运营商进行DNS劫持问题及解决方案,app中h5页面源码的获取