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

简介: HTML5页面被运营商DNS问题及解决方案,app中h5页面源码的获取

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需要你购买证书或者服务器自己做一个证书,具体https是后台开发的问题我是外行。

2017年1月1日,苹果商店禁止使用http的新应用上架,现在还允许包含http的应用上架,看来也没有一棍子打死。https是比http安全的多,虽然也有破解方案,但是对于防一般人窃取信息就够了。软件安全是相对的,防一般外行,不是防止一切"钻家"(黑客)的。很多人都会感觉黑客都是写软件很好的人,其实并非都如此,很多只对写代码了解皮毛,能简单写代码利用软件漏洞的人不在少数。

谷歌也将要拿http访问的网站开刀了,见文章《洒泪告别 神秘代码终被谷歌逼上绝路》。

WKWebView的h5页面(js页面)的源码获取和UIWebView皆然不同,需要协议拦截,但造成js的post请求的参数被清空的严重问题,所以只能在测试时使用或不需要发送带参数的post请求的js页面使用。具体参照文章《WKWebView采用HybridNSURLProtocol协议拦截图片等资源预加载》。代码片段如下:

- (void)viewDidLoad {
    [super viewDidLoad];
    [self registerNSURLProtocolScheme];
}
- (void)registerNSURLProtocolScheme
{
    [NSURLProtocol wk_registerScheme:@"https"];
    [NSURLProtocol wk_registerScheme:@"http"];
}
-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
    
    NSString *url = [NSString stringWithContentsOfURL:webView.URL encoding: NSUTF8StringEncoding error:nil];
    NSLog(@"webView.URL:%@",url);
}


目录
相关文章
|
1天前
切方块游戏 HTML5+jQuery【附源码】
切方块游戏 HTML5+jQuery【附源码】
5 0
|
5天前
|
JavaScript
欢乐打地鼠小游戏html源码
这是一款简单的js欢乐打地鼠游戏,挺好玩的,老鼠出来用鼠标点击锤它,击中老鼠获得一积分。
18 2
|
8天前
|
Web App开发 监控 JavaScript
JS 鼠标框选(页面选择)时返回对应的 HTML 或文案内容
JS 鼠标框选(页面选择)时返回对应的 HTML 或文案内容 当用户进行鼠标框选选择了页面上的内容时,把选择的内容进行上报。 分为以下几点: 选择文案时 选择图片、svg、iframe、video、audio 等标签时 选择 input、select、textarea 等标签时 选择 input、textarea 标签内容时 选择类似   字符时 键盘全选时 鼠标右键选择 以上各模块结合时 当包含标签的时候,返回 html 结构,只有文本时返回文本内容
12 1
|
11天前
404错误页面源码,简单实用的html错误页面模板
小编精心准备一款404错误页面源码,简单实用的html错误页面模板,简单大气的页面布局,可以使用到不同的网站中,相信大家一定会喜欢的
9 2
404错误页面源码,简单实用的html错误页面模板
|
17天前
|
前端开发
html编写登录页面练习
html编写登录页面练习
22 0
|
17天前
html编写注册页面
html编写注册页面
20 0
|
18天前
|
前端开发 JavaScript
基于Html对父页面打开子页面Dialog()的使用
作者在使用基于QUI的前端项目中遇到一个问题:无法在Dialog组件中提交后刷新列表页面。经过搜索和努力,找到了解决方案。通过创建新的`top.Dialog()`,设置相关属性如标题、URL、尺寸,并在OK事件中调用子页面的提交方法及刷新列表的方法实现了需求。提供的代码示例展示了如何打开编辑窗体并处理提交事件以刷新列表。
|
移动开发 JavaScript Windows
uni-app的H5适配全面屏
记录一下如何在用uni-app开发h5时适配全面屏
891 0
uni-app的H5适配全面屏
|
1月前
|
移动开发 小程序
如何让uni-app开发的H5页面顶部原生标题和小程序的顶部标题不一致?
如何让uni-app开发的H5页面顶部原生标题和小程序的顶部标题不一致?
|
3天前
|
存储 Android开发 Kotlin
Kotlin开发安卓app,在使用 MediaPlayer 播放 res/raw 中的音乐时遇到突然中断的问题,而 onErrorListener 没有接收到任何报错
在使用 Android MediaPlayer 播放 res/raw 中的音乐时遇到中断问题,可能的原因包括资源问题、媒体文件编码格式、生命周期管理和设备资源配置。要排查问题,检查音频文件是否正确包含,格式编码是否支持,MediaPlayer 是否正确管理及释放,以及设备是否有足够存储和配置。通过设置 onErrorListener 日志和确保在 onDestroy 中释放资源来调试。如果文件过大,考虑使用 AssetManager。遵循这些步骤可帮助诊断并解决播放中断的问题。

推荐镜像

更多