问题
在 H5 页面使用 JS 代码下载 apk 文件
1 | window.open('http://xx.apk'); |
表现在 Chrome 上新窗口一闪而过,部分手机浏览器有问题,本地部署调试时没有问题
原因
线上 H5 地址是 HTTPS,而外链是 HTTP,所以被 Chrome 和部分手机浏览器拦截了;而本地部署的地址是 HTTP,所以没问题
方法
外链替换为 HTTPS
记录下自己这个 case 的具体做法:
- 七牛云申请一个 HTTPS 的加速域名,想要申请一个 image.xx.com 的域名,提示需要 HTTPS 证书
- 到域名提供商,如腾讯云,申请一个二级域名证书。之前的证书只能支持一级域名,方法是点击 Chrome 左上角的锁查看颁发对象,如果是
xx.com
就是只支持一级,如果是*.xx.com
就是泛域名证书。由于我的是一级证书,因此需要重新申请一个。腾讯云的泛域名证书需要付费,而单个的二级域名不需要。详情点击 腾讯云 SSL 证书,选择自动解析 DNS - 下载 SSL 证书,选择 pem 格式
- 上传到七牛云,上传 pem 和 key 两个文件
- 添加 image.xx.com 的加速域名
- 到腾讯云为该域名添加 CNAME 解析,主机记录填写 image 即可,value 值填写七牛云给的加速域名。意思是凡是访问 image.xx.com 这个域名,统统先解析为七牛云给的加速域名,再解析为其对应的 IP 地址。这样哪天七牛云换了 IP 地址,你的这个域名就依然生效
由于腾讯 SSL 证书只有一年有效期,到期后需要手动更新,重复步骤 2-4,然后在七牛云该证书页面点击部署到 CDN 即可