【发布时间】:2014-06-30 21:28:05
【问题描述】:
我正在尝试从我的网站下载一个 apk 文件,它适用于每部 Android 手机(下载和安装)。我在 Galaxy Tab 3 上尝试过,但无法下载文件。它显示它正在下载,但它永远卡在进度条上并且永远不会下载。这些浏览器失败了:
- 默认安卓浏览器
- 铬
- 海豚
我在 Firefox 上尝试过,Firefox 正常工作。它下载成功,之后我能够成功安装它。所以它确实有效(而且它在我测试过的手机上也有效)
我认为它可能与 mimetype 有关,所以我检查了它并在检查标头 Content-Type 时发现它是“application/vnd.android.package-archive”。这是根据Wikipedia的mime类型
所以为了安全起见,我将它添加到我的 htaccess 文件中
AddType application/vnd.android.package-archive .apk
还是失败了。
然后我在以下测试站点 url 上尝试了这个测试,我能够在所有浏览器上正常下载它。
http://misc.commonsware.com/Now-debug.apk
所以我想这可能是因为我们的网站在 https 中,这可能是问题所在。除了这次在 https 下,我再次使用“http://misc.commonsware.com/Now-debug.apk”url 测试了相同的浏览器。它的运作方式与我们网站上的运作方式完全相同。除 Firefox 之外的所有浏览器都无法下载此文件。他们只是说下载,但没有下载。
现在我假设也许这个测试站点一开始就没有设置 SSL(我不知道,因为我没有设置服务器)所以这就是为什么它在大多数平板电脑浏览器上失败的原因。是否有一些奇怪的 SSL 设置可能对某些平板电脑浏览器非常挑剔?还是大多数平板电脑浏览器都很糟糕,我必须处理它?我真的不明白为什么要在除了平板电脑上的主要浏览器之外的任何浏览器上下载这个 apk 文件(除了 Firefox,它仍然有效)
更新
我手机上的 Firefox 浏览器也没有下载该应用程序。所以我在 Galaxy Tab 3 上的 Chrome 浏览器没有下载,但它在我的手机 Nexus 5 上运行。Firefox 在 Galaxy Tab 3 上下载它,但在我的 Nexus 5 上没有。
我在我的桌面上设置了远程开发人员工具,并连接到我的手机以获取更多信息。我的 Firefox 浏览器向 url 发出下载请求,并接收到正确的内容类型application/vnd.android.package-archive。
所以我决定创建一个脚本,强制内容类型为application/octet-stream,并通过 php 脚本下载它。我设法让它在我的 Nexus 5 Firefox 浏览器上运行,但是,所有 Galaxy Tab 3 浏览器仍然无法运行。这是一个非常小的突破,但也许它暗示了问题可能出在哪里。
【问题讨论】:
-
我想知道这是否是一个安全问题,它实际上在帮助最终用户,保护他们免于下载不是来自 Google Play 的恶意应用程序。你解决了吗?