uni-app 原生查件“Dasu-doc_preview”报错
uni-app 原生查件“Dasu-doc_preview”报错
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10(64位) | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:3.2.16
手机系统:Android
手机系统版本号:Android 11
手机厂商:华为
手机机型:荣耀50、oppoR11s
页面类型:vue
vue版本:vue2
打包方式:云端
App下载地址或H5网址:
https://ide.dcloud.net.cn/build/download/4a306ac0-5eda-11ec-89f0-eda071c512bb
示例代码:
openPdf(pid, fileUrl,biaoshi) {
var _that = this;
console.log('fileUrl:' + fileUrl);
uni.showLoading({
title: '加载中...'
});
uni.downloadFile({
url: encodeURI(fileUrl),
success: function(res) {
var filePath = res.tempFilePath;
console.log("11111111111111111111111111111" + JSON.stringify(res));
if (uni.getSystemInfoSync().platform == 'android') {
const docPreview = uni.requireNativePlugin('Dasu-doc_preview');
docPreview.openDoc(plus.io.convertLocalFileSystemURL(filePath));
uni.hideLoading();
if(biaoshi === 1){
_that.updateReads(pid);
} else {
_that.updateNoticeReads(pid);
}
} else {
uni.openDocument({
filePath: filePath,
success: function(res) {
console.log('打开文档成功');
uni.hideLoading();
if(biaoshi === 1){
_that.updateReads(pid);
} else {
_that.updateNoticeReads(pid);
}
}
});
}
},
fail(e) {
console.log(e)
uni.hideLoading()
},
complete(w) {
console.log(w)
uni.hideLoading()
}
});
},
操作步骤:
1
预期结果:
1
实际结果:
1
bug描述:
附件预览用了插件“Dasu-doc_preview”,以前项目中好使,现在编译完突然不好用了,错误提示如下:
当前运行的基座不包含原生插件[Dasu-doc_preview],请在manifest中配置该插件,重新制作包括该原生插件的自定义运行基座
13:32:54.613 /storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/HBuilder/doc/uniapp_temp_1639711888101/download/b5ed92e1036b49798b9053b013ab164d.pdf at pages/gzdt/gzdt.vue:639
13:32:54.634 TypeError: Cannot read property 'openDoc' of undefined
13:32:54.654 [Object] {"tempFilePath":"_doc/uniapp_temp_1639711888101/download/b5ed92e1036b49798b9053b013ab164d.pdf","statusCode...} at pages/gzdt/gzdt.vue:670
14:02:54.152 App Hide at App.vue:145
(ps:文件格式是pdf)
更多关于uni-app 原生查件“Dasu-doc_preview”报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
如果是云插件的话,请查看插件支持的hx版本,或者吧hx的版本降到原来的那个能用的版本再试试
更多关于uni-app 原生查件“Dasu-doc_preview”报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
只能降到上一个版本,不能降到指定版本呀
根据你的报错信息,问题很明确:当前运行的基座不包含原生插件“Dasu-doc_preview”。
错误发生在这一行:
const docPreview = uni.requireNativePlugin('Dasu-doc_preview');
uni.requireNativePlugin 返回了 undefined,导致后续调用 openDoc 方法时报错。
问题原因分析
-
插件未正确配置或打包:这是最常见的原因。原生插件需要在
manifest.json中正确配置,并且必须使用自定义调试基座或云打包才能生效。 -
运行环境不匹配:你可能正在使用标准运行基座(不包含原生插件)进行调试,或者云端打包时没有正确包含该插件。
解决方案
方案一:使用自定义调试基座(推荐用于开发调试)
-
配置插件:
- 打开
manifest.json→ App原生插件配置 → 选择云端插件 - 找到并勾选“Dasu-doc_preview”插件
- 打开
-
制作自定义调试基座:
- 运行 → 运行到手机或模拟器 → 制作自定义调试基座
- 等待基座制作完成(这需要一些时间)
-
使用自定义基座调试:
- 制作完成后,确保运行到“自定义调试基座”
- 重新运行项目到设备
方案二:云端打包(用于正式发布)
- 在manifest中配置插件(同上)
- 提交云端打包:
- 发行 → 原生App-云打包
- 选择Android平台,使用自有证书或测试证书
- 确保插件已正确勾选
- 下载安装测试:打包完成后,下载apk安装测试
方案三:检查插件兼容性
考虑到你提到“以前项目中好使,现在编译完突然不好用了”,还需要检查:
- 插件版本:查看插件是否有更新,旧版本可能不兼容新的HBuilderX或Android系统
- HBuilderX版本:3.2.16是比较新的版本,确认插件是否支持该版本
- Android 11权限:Android 11对文件访问有更严格的限制,确保应用有正确的文件访问权限
临时验证方法
你可以先注释掉Android端的特殊处理,统一使用 uni.openDocument 来测试PDF是否能正常打开:
// if (uni.getSystemInfoSync().platform == 'android') {
// 改为:
if (false) {


