MAC iOS从ios8开始支持HTML,为了兼容IOS7一般使用WebViewJavascriptBridge这个第三方控件,IOS8自带的HTML5功能我也没有使用过,俺还是使用这个第三方控件简单。
手机通过运营商网络(非WIFI网络)打开一个HTML5页面,都被运营商植入手机管家。大部分情况下,通过它可以看到自己的流量,好像很不错,而且可以关闭。但是有些场景看起来特流氓,你关闭了手机管家,再打开新的HTML5页面又跳出来了,若我们小市民正拿着手机玩游戏,换个页面,突然出现了一个大BOSS,结果被手机管家遮挡住了,可能看到大BOSS的大腿或完全隐形了,你让玩家多火大。不论这种场景,就是开发者辛苦做出来的页面渲染效果,一个手机管家不管三七二十一的占有一块地盘,像一个水墨画上有个苍蝇一样,多煞风景啊,多不和谐啊。所以有的用户投诉,像干掉这个毒瘤。用户希望在访问其它浏览器的网页可以看到手机管家,在手机APP内置的HTML游戏页面禁止有手机管家。
首先手机管家只所以被植入是HTML页面经过运行商网络被植入了一段他自己的代码,结果页面上面就多了一个手机管家图层。所以只要找到这段代码,把它干掉就可以了。
问题是想法是丰满的,现实是骨感的。想找到他都不容易,想干掉它更不容易。想找到那段代码的难度有这几点:
1:只有通过运营商网络才会被植入手机管家,使用WIFI网络不被植入手机管家,结果导致通过代理实现截获手机HTTP请求的charles无法抓到包,看不到报文。
2:由于WebViewJavascriptBridge不能通过打印日志的方式记录下载HTML5原代码。
所以通过APP自身很难找到它是谁,为何那么霸道给我送个什么什么的黑蛋。
我认为只有JS的页面通过统计所有页面元素和调用的对象来找到它增加的是什么妖怪。若是能通过其它我不知道的方法截获HTTP报文原内容,让后用JS代码干掉这个手机管家的对象,我们就阿门了。
期望大家能实际解决,贴出来给我看下已经实际实现的解决方案。俺毕竟是搞OC的不是搞JS前端的,所以自己也没有实际解决这个问题。
右下角出现的手机管家图标
点击手机管家
终于在前端的配合下找到了,解决方案。
详细见文章:HTML5页面被运营商进行DNS劫持问题及解决方案,app中h5页面源码的获取(http://blog.csdn.net/jia12216/article/details/52958237)。