uni-app安卓下载过后打不开文件

uni-app安卓下载过后打不开文件

开发环境 版本号 项目创建方式
Windows win10 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:win10

HBuilderX类型:正式

HBuilderX版本号:3.2.16

手机系统:Android

手机系统版本号:Android 11

手机厂商:华为

手机机型:iqooneo855 和华为

页面类型:vue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

### 操作步骤:

```javascript
uni.downloadFile({  
    url:url,      //文件链接  
    success: function (res) {  
        var filePath = res.tempFilePath;  
        uni.openDocument({  
            filePath: filePath,  
            showMenu: true,  
            success: function (res) {  
                console.log('打开文档成功');  
            },  
            fail: (err) => {  
                console.log(err.errMsg)  
            }  
        });  
    }  
})

预期结果:

openDocument:fail not found 3th activity

实际结果:

openDocument:fail not found 3th activity

bug描述:

uni-app下载文件过后无法打开文件 手机上wps也下载好了 更换手机也没有用

一直提示openDocument:fail not found 3th activity


更多关于uni-app安卓下载过后打不开文件的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

打开什么文件?文件发出来

更多关于uni-app安卓下载过后打不开文件的实战教程也可以访问 https://www.itying.com/category-93-b0.html


你一定要保证,那个文件地址是对的

缺少一步 uni.saveFile 操作吧 如果还不行可以再试试这个转换 plus.io.convertLocalFileSystemURL(****)

你好,请问问题解决了么

你好,请问问题解决了么

问题解决了么。。。。求大佬分享原因。。。

这边可能是安卓下载后的文件格式错误,有可能直接被保存为了.bin格式,解决方案是,让后端返回时,修改一下content-type类型; 具体可以看这个链接 https://blog.csdn.net/HWJBJ/article/details/127769808

实践有效

这是一个典型的文件路径和系统应用关联问题。openDocument:fail not found 3th activity 错误表明系统没有找到能处理该文件类型的应用。

核心问题在于 uni.downloadFile 下载后返回的 tempFilePath 是一个临时路径(通常位于应用私有目录),而 uni.openDocument 要求一个可被系统全局访问的路径。

解决方案如下:

  1. 将文件保存到公共目录(关键步骤): 使用 uni.saveFile 将临时文件保存到公共存储目录,使系统应用(如WPS)能够访问。

    uni.downloadFile({
        url: url,
        success: function (res) {
            var tempFilePath = res.tempFilePath;
            // 将文件从临时目录移动到公共目录
            uni.saveFile({
                tempFilePath: tempFilePath,
                success: function (saveRes) {
                    var savedFilePath = saveRes.savedFilePath;
                    // 现在使用公共目录路径打开文档
                    uni.openDocument({
                        filePath: savedFilePath,
                        showMenu: true,
                        success: function (openRes) {
                            console.log('打开文档成功');
                        },
                        fail: (err) => {
                            console.log('打开失败:', err.errMsg);
                        }
                    });
                },
                fail: (saveErr) => {
                    console.log('保存文件失败:', saveErr.errMsg);
                }
            });
        },
        fail: (downloadErr) => {
            console.log('下载失败:', downloadErr.errMsg);
        }
    });
    
  2. 检查文件类型与系统应用关联

    • 确保下载的文件格式(如 .pdf, .docx, .xlsx)在系统中有默认的打开应用。
    • 在手机上检查该文件类型是否已关联到WPS或其他文档应用。可以尝试先在文件管理器中手动打开一个同类型文件,设置默认应用。
  3. Android权限配置: 在 manifest.json 中确保已声明必要的存储权限(Android 10/11需要):

    {
        "app-plus": {
            "distribute": {
                "android": {
                    "permissions": [
                        "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
                        "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>"
                    ]
                }
            }
        }
    }
回到顶部