webview初始化后首次访问服务器出现空白页
来源:互联网 发布:淘宝2017年双十一 编辑:程序博客网 时间:2024/06/06 11:02
我们的h5+webview封装的app在安卓和ios平台上线了。ios能审核通过挺出乎我意料的,本来已经做好打算,如果第一版审核不通过,将h5打包到本地应用程序中发布。苹果能接受bs型结构大幅降低了这两个平台的开发和维护难度。
上线是个好事情,但是我们程序上线后发现,进入app的时候,会偶尔出现空白页面的问题,无论是安卓还是ios平台,都有这个问题。我们的页面是静态的页面,放在nginx上面,不应该出现访问不了的问题,原来在测试环境的时候从来没有出现过这个问题。首先看nginx日志,没有发现什么问题。每天早上起来之后,第一次访问的时候出现空白页的概率最大,一旦访问过一次后,这个问题就出现不了了。从用户的实际使用场景来说,我们的软件不是一个太高频访问的程序,用户遇到这个问题的概率要比我们大得多。一开始在服务器上纠结了一段时间,后来想明白是域名解析出现问题了,我们测试环境是直接访问的ip,不需要域名解析,因此没有发现这个问题。定制浏览器在初始化后首次访问页面的时候,如果上一次的域名解析结果超过了域名的有效时间(6个小时),需要浏览器再次做域名解析的时候,就会出现问题。
发现了问题了,接下来就好办了,靠浏览器做首次域名解析有问题,就不靠它了,改为程序先做一次域名解析,将解析的结果替换域名,拼接成一个带ip的地址交给浏览器访问,就再也不会出现空白页的问题了。
这个问题解决了,但是带来了一个新的问题,就是nginx端服务器如何配置的问题。由于修改为ip访问,原来nginx基于域名的配置转发就失效了,并且还要兼容修改前后浏览器两种访问方式。好消息是ajax访问不需要做域名解析,从来没有出现过解析不了的问题。只需要解决静态页面的兼容问题就好。经过尝试,修改成后如下方案。1.对于修改后的浏览器的来说,将它的访问地址修改为nginx html根目录的相对目录。这样即使是没有网址,他也可以访问到h5页面。
2.对于修改前的浏览器来说,仍然走依靠域名配置的地址。
3.调整nginx的配置相对位置,nginx的策略是如果能在配置中找到访问的域名,就走域名配置下的路径,如果没有找到配置的域名,就采用第一个配置。因此将访问nginx根目录的默认配置调整到第一个位置
0 0
- webview初始化后首次访问服务器出现空白页
- Android WebView 访问https显示空白页
- Android WebView 访问https显示空白页
- Android 7.0 WebView加载https出现空白页
- webView加载H5页面出现空白页的解决办法
- 项目部署到tomcat后访问显示空白页
- dedecms删除大量数据后,更新列表页出现空白页
- WebView显示空白页问题解决
- 修改完wamp密码后出现服务器拒绝访问
- 修改完wamp密码后出现服务器拒绝访问
- php 加密后空白页
- 复合报表出现空白页
- Recycleview 出现空白页
- fragment切换出现空白页
- Tensorboard出现空白页解决方案
- android webview 显示空白页问题解决
- android webview 显示空白页问题解决
- android webview显示空白页问题
- <蓝牙BLE>cc2540修改动态广播
- 【ASP.NET】利用jQuery与.ashx完成简单的Ajax
- jsp通过Cookie实现自动登录
- docker的使用总结
- Hibernate Annotation之主键生成策略
- webview初始化后首次访问服务器出现空白页
- Ubuntu建立和删除用户
- (java)Count Primes
- Java动态代理(jdk代理和cglib代理)
- storm常见问题
- Linux Mint 17.3安装VMware Tools
- JSP标签JSTL(5)--常用的标签函数
- iOS开发之UITableView全面解析
- Unity3D企业项目转版本遇到的坑