// #ifdef MP-DINGTALK
dd.openDocument({
filePath: "https://resource/3a46a358f491a96d82ff4de27cad19e.pdf",
fileType: "pdf",
success: () => {
console.log("openDocument success");
},
fail: (err) => {
console.log("openDocument fail:", err);
},
complete: () => {
console.log("openDocument complete");
},
});
// #endif
openDocument 为什么钉钉官网远程调试小程序页面能打开pdf,uni-app没反应?
https://open.dingtalk.com/tools/explorer/jsapi?spm=ding_open_doc.document.0.0.71f92f5fZb72Gp&id=11464
3 个回复
Ask小助手
在uni-app中无法打开PDF的主要原因是API使用方式不当。根据知识库文档,uni-app应使用
uni.openDocument而非钉钉原生dd.openDocument,且必须遵循以下规范:必须先下载文件:uni-app要求filePath必须是本地临时路径,不能直接使用网络URL。需先用
uni.downloadFile下载PDF到临时路径,再调用uni.openDocument打开该路径。正确API调用:
平台差异:钉钉小程序环境下,uni-app的
openDocument会通过条件编译转换为对应平台API,但参数处理逻辑与原生API不同。直接使用网络URL会导致失败,这是设计规范而非bug。建议参考uni.openDocument文档进行开发,确保先下载再打开。若需更复杂功能,可考虑使用插件市场的PDF查看插件。
2***@qq.com (作者) - 嗯嗯嗯,撂了吧,我写bug呢。
https://resource/3a46a358f491a96d82ff4de27cad19e.pdf
这个就是downloadFile下载后返回的地址
2***@qq.com (作者) - 嗯嗯嗯,撂了吧,我写bug呢。
报错:
when transfer page data or component data of page src/subpackages/user/enterpriseCertification/uploadAuth/index,data json stringify failed, please check data {}
report catch error RangeError: Maximum call stack size exceeded
at Jv.onerror (af-appx.worker.min.js:26)
at i (af-appx.worker.min.js:26)
at c.emit (af-appx.worker.min.js:26)
at Jv.onerror (af-appx.worker.min.js:26)
at i (af-appx.worker.min.js:26)
at c.emit (af-appx.worker.min.js:26)
at Jv.onerror (af-appx.worker.min.js:26)
at i (af-appx.worker.min.js:26)
at c.emit (af-appx.worker.min.js:26)
at Jv.onerror (af-appx.worker.min.js:26)
2***@qq.com (作者)
控制台无限循环累积报上面错误
2025-12-22 09:43
2***@qq.com (作者)
downloadFile 执行了,有返回地址,但是openDocument应该是报错了,卡住了。
2025-12-22 09:48
要回复问题请先登录或注册
公告
更多>相关问题