uni-app HBuilderX某次更新后 腾讯tbs文件服务的office预览插件无法正常使用

uni-app HBuilderX某次更新后 腾讯tbs文件服务的office预览插件无法正常使用

测试过的手机

xiaomi8,redmik30,苹果12

示例代码

ios正常,安卓点击下载没反应

操作步骤

downloadPDF(path) {
    uni.downloadFile({
        url: path,
        success: function(res) {
            var filePath = res.tempFilePath;
            if (uni.getSystemInfoSync().platform == 'android') {
                let docPreview = uni.requireNativePlugin('Dasu-doc_preview');
                console.log(filePath)
                docPreview.openDoc(plus.io.convertLocalFileSystemURL(filePath))
                console.log(11111111111)
            } else {
                uni.openDocument({
                    filePath: filePath,
                    success: function(res) {
                        console.log('打开文档成功');
                    }
                });
            }
        },
        fail(e) {
            console.log(e)
        },
        complete(w) {
            console.log(w)
        }
    });
}

预期结果

downloadPDF(path) {
    uni.downloadFile({
        url: path,
        success: function(res) {
            var filePath = res.tempFilePath;
            if (uni.getSystemInfoSync().platform == 'android') {
                let docPreview = uni.requireNativePlugin('Dasu-doc_preview');
                console.log(filePath)
                docPreview.openDoc(plus.io.convertLocalFileSystemURL(filePath))
                console.log(11111111111)
            } else {
                uni.openDocument({
                    filePath: filePath,
                    success: function(res) {
                        console.log('打开文档成功');
                    }
                });
            }
        },
        fail(e) {
            console.log(e)
        },
        complete(w) {
            console.log(w)
        }
    });
}

实际结果

uni.downloadFile({  
    url: path,  
    success: function(res) {  
        var filePath = res.tempFilePath;  
        if (uni.getSystemInfoSync().platform == 'android') {  
            let docPreview = uni.requireNativePlugin('Dasu-doc_preview');  
            console.log(filePath)  
            docPreview.openDoc(plus.io.convertLocalFileSystemURL(filePath))  
            console.log(11111111111)  
        } else {  
            uni.openDocument({  
                filePath: filePath,  
                success: function(res) {  
                    console.log('打开文档成功');  
                }  
            });  
        }  
    },  
    fail(e) {  
        console.log(e)  
    },  
    complete(w) {  
        console.log(w)  
    }  
});  

更多关于uni-app HBuilderX某次更新后 腾讯tbs文件服务的office预览插件无法正常使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

更多关于uni-app HBuilderX某次更新后 腾讯tbs文件服务的office预览插件无法正常使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html


请联系插件作者解决

应该不是插件的原因

换插件吧,那个插件没维护了,https://ext.dcloud.net.cn/plugin?id=3226这个不错

我直接用框架自带的方法了

uni-app 项目中使用腾讯 TBS(Tencent Browser Service)的 Office 预览插件时,如果遇到无法正常使用的问题,尤其是在 HBuilderX 更新后,可以尝试以下步骤进行排查和解决:

1. 检查 TBS 插件版本

确保你使用的 TBS 插件版本与当前的 HBuilderX 版本兼容。HBuilderX 的更新可能会导致某些插件或依赖的 API 发生变化,因此需要更新 TBS 插件到最新版本。

2. 检查 manifest.json 配置

确保在 manifest.json 文件中正确配置了 TBS 插件。检查以下配置项:

{
  "app-plus": {
    "plugins": {
      "tbs": {
        "version": "x.x.x", // 确保版本号正确
        "provider": "tencent"
      }
    }
  }
}

3. 检查权限配置

TBS 插件可能需要某些权限才能正常工作。确保在 manifest.json 中正确配置了所需的权限。例如:

{
  "app-plus": {
    "permissions": [
      "android.permission.READ_EXTERNAL_STORAGE",
      "android.permission.WRITE_EXTERNAL_STORAGE"
    ]
  }
}

4. 检查文件路径

确保你传递给 TBS 插件的文件路径是正确的。TBS 插件通常需要文件的绝对路径,而不是相对路径。你可以使用 uni.getFileSystemManager()uni.downloadFile() 来获取文件的正确路径。

5. 查看日志信息

HBuilderX 的控制台中查看日志信息,检查是否有任何错误或警告信息。这些信息可以帮助你定位问题所在。

6. 更新 HBuilderX 和 TBS SDK

如果以上步骤都无法解决问题,尝试更新 HBuilderX 到最新版本,并确保你使用的 TBS SDK 也是最新版本。有时,问题可能是由于 HBuilderX 或 TBS SDK 的 bug 导致的,更新到最新版本可能会修复这些问题。

7. 联系官方支持

如果问题仍然存在,建议联系 uni-app 或 TBS 的官方技术支持团队,提供详细的错误信息和日志,以便他们帮助你解决问题。

8. 使用其他替代方案

如果 TBS 插件无法正常工作,可以考虑使用其他 Office 文件预览方案,比如使用 WebView 加载在线文档,或者使用其他第三方插件。

示例代码

以下是一个使用 TBS 插件预览 Office 文件的示例代码:

uni.downloadFile({
  url: 'https://example.com/path/to/your/file.docx',
  success: (res) => {
    if (res.statusCode === 200) {
      const filePath = res.tempFilePath;
      uni.openDocument({
        filePath: filePath,
        fileType: 'docx',
        success: function (res) {
          console.log('打开文档成功');
        },
        fail: function (err) {
          console.log('打开文档失败', err);
        }
      });
    }
  },
  fail: (err) => {
    console.log('文件下载失败', err);
  }
});
回到顶部