下载android .apk作为.zip在android的问题

wtzytmuj  于 2023-03-06  发布在  Android
关注(0)|答案(5)|浏览(193)

我已经开发了一个应用程序,但当我的客户端尝试从使用三星GT19003提供的URL下载应用程序时,它是作为.zip文件下载的,并点击它说无法打开文件错误。而它作为.apk下载,并在我们的设备中运行良好。请帮助我,我该如何解决这个问题。

knpiaxh1

knpiaxh11#

确保已将http Content-Type设置为application/vnd.android.package-archive
这让chrome知道它是一个应用程序而不是zip。

z0qdvdin

z0qdvdin2#

一个简单的解决方案是在/etc/mime.types中添加下面这一行

application/vnd.android.package-archive     apk

重启你的Apache。
这将迫使浏览器以“apk”格式下载文件,而不附加“zip”。

x0fgdtte

x0fgdtte3#

如果下载为. zip
1.您或您的客户可以使用File Expertapplication解压缩此.zip文件,它必须在解压缩文件夹中显示. apk文件
1.给你的用户一个直接的apk链接,他/她使用默认浏览器下载或使用一些其他像opera,如果它是. apk文件链接,那么它必须被下载为是.
1.您可能正在使用一些内容网站的压缩文件上特定的下载方法,请确保它为direct.apk链接.

    • 编辑1:**

1.最后但并非最不重要的**. apk只是一个zip文件所以这不是一个问题只是重命名它(从. zip到. apk)**如果你可以,我希望它会解决这个问题

vmjh9lq9

vmjh9lq94#

在我的情况下,这个问题也和@ alireza fattahi提到的标题一样。
在此共享此信息是因为在我们的案例中,文件位于Azure存储中,并通过CDN访问,以防任何人遇到相同的问题。

Azure存储和CDN修复

默认情况下,上传的APK blob的内容类型为application/zip,并且reposnse标头中反映了相同的内容类型,导致下载的文件在下载完成时在Android操作系统上获得.zip扩展名。
我必须在存储CDN中设置一个自定义规则,以覆盖application/vnd.android.package-archive响应中的content-type标头
请记住在设置新规则后清除CDN缓存
了解更多关于Azure CDN rules engine的信息。

mefy6pfw

mefy6pfw5#

以下是示例://在这里设置你的下载apk路径
"/upload/apk/忍者11.apk ";

//Set header here like this
$headers =  [
            'Content-Type'=>'application/vnd.android.package-archive',
            'Content-Disposition'=> 'attachment; filename="ninja-release.apk"',
        ];
    • 返回响应()-〉文件($路径,$头);**

这是Laravel框架代码,但同样的,你也可以在其他框架中使用。
注意:这不是Android方面的问题

相关问题