swan.shareFile

在工具和真机中的实现有区别,详见API 实现差异swan.shareFile - 图1。基础库3.80.2开始支持,低版本需做兼容处理。

解释:支持调起系统分享面板将文件分享到其他App。Web 态说明:Web 态小程序暂不支持,接口调用会进入失败回调(fail)。

方法参数

Object object

data 参数说明

参数名类型是否必填默认值说明
filePathstring需要分享的文档的地址
successFunction接口调用成功的回调
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

fail 返回值参数说明

Web 态

错误信息(errMsg)类型说明
swan.shareFile is not supported in webstring不支持此能力

示例

扫码体验

swan.shareFile - 图2请使用百度APP扫码

图片示例

swan.shareFile - 图3

swan.shareFile - 图4

swan.shareFile - 图5

代码示例1 - 分享本地文件

在开发者工具中预览效果

  • 在 swan 文件中
  1. <view class="wrap">
  2. <button type="primary" bindtap="shareFile">点击分享文件</button>
  3. </view>
  • 在 js 文件中
  1. Page({
  2. shareFile() {
  3. swan.chooseImage({
  4. count: 1,
  5. success: res => {
  6. swan.shareFile({
  7. filePath: res.tempFilePaths[0],
  8. success: res => {
  9. swan.showModal({
  10. title: '分享成功',
  11. content: JSON.stringify(res)
  12. });
  13. },
  14. fail: err => {
  15. swan.showModal({
  16. title: '分享失败',
  17. content: JSON.stringify(err)
  18. });
  19. }
  20. });
  21. },
  22. fail: err => {
  23. console.log('错误码:' + err.errCode);
  24. console.log('错误信息:' + err.errMsg);
  25. }
  26. });
  27. }
  28. });
  • 在 css 文件中
  1. .wrap {
  2. padding: 50rpx 30rpx;
  3. }

代码示例2 - 分享服务器上文件

在开发者工具中预览效果

  • 在 swan 文件中
  1. <view class="container">
  2. <view class="card-area">
  3. <view class="display-area">
  4. <view>
  5. <image class="file-icon" src="/images/file-pdf.png" mode="widthFix"></image>
  6. </view>
  7. <view class="file-label">示例文件.pdf</view>
  8. </view>
  9. <view class="button-group">
  10. <button type="primary" bindtap="shareFile">分享服务器上文件</button>
  11. </view>
  12. </view>
  13. </view>
  • 在 js 文件中
  1. Page({
  2. data: { },
  3. shareFile() {
  4. this.toast('正在保存', 'loading');
  5. swan.downloadFile({
  6. url: 'https://smartprogram.baidu.com/docs/img/file-simple.pdf',
  7. header: {
  8. 'content-type': 'application/json'
  9. },
  10. success: res => {
  11. const filePath = res.tempFilePath;
  12. swan.shareFile({
  13. filePath: res.tempFilePath,
  14. success: res => {
  15. swan.showModal({
  16. title: '分享成功',
  17. content: JSON.stringify(res)
  18. });
  19. },
  20. fail: err => {
  21. swan.showModal({
  22. title: '分享失败',
  23. content: JSON.stringify(err)
  24. });
  25. }
  26. });
  27. },
  28. fail: err => {
  29. this.toast('下载文件失败');
  30. },
  31. complete: () => {
  32. swan.hideToast();
  33. }
  34. });
  35. },
  36. toast(title, icon = 'none') {
  37. swan.showToast({title, icon});
  38. }
  39. });
  • 在 css 文件中
  1. .wrap {
  2. padding: 50rpx 30rpx;
  3. }