由于不同手机对于文件下载有不同的支持,而且文件路径也不一样,找起来十分的麻烦。所以,最好是找到一个都支持的方法。还好,钉钉官网提供了网盘,我们可把文件保存到钉钉自带的网盘,这样方便查找。
这里需要后端返回下载文件的url地址
TypeScript
dd.saveFileToDingTalk({
url: 'https://ringnerippca.files.wordpress.com/20.pdf',
name: '文件名称.pdf',
success: (res) => {
const { data } = res;
dd.previewFileInDingTalk({
corpId: '应用的corpId',
fileId: data[0].fileId,
spaceId: data[0].spaceId,
fileName: data[0].fileName,
fileSize: data[0].fileSize,
fileType: data[0].fileType,
success: () => {},
fail: () => {},
complete: () => {},
});
},
fail: () => {},
complete: () => {},
});
不过需要注意的是使用这两个api之前需要先鉴权。
TypeScript
// 当前网页的URL,不包含#及其后面部分。
ajax(url).then((res) => {
if (res.data.success) {
const { agentId, timeStamp, nonceStr, signature } = res.data.content;
dd.config({
agentId,
corpId: '应用的corpId',
timeStamp,
nonceStr,
signature,
type: 0,
jsApiList: [
'saveFileToDingTalk',
'previewFileInDingTalk'
]
});
dd.error((err) => {
console.log('🚀 dd.error ~ err.errorMessage',err.errorMessage);
console.log('🚀 dd.error ~ err.url', err.url);
}); // 该方法必须带上,用来捕获鉴权出现的异常信息,否则不方便排查出现的问题
}
});