uniapp 微信小步伐,图片,视频,文件预览弹窗,可保存 ...

打印 上一主题 下一主题

主题 819|帖子 819|积分 2459


  1.                         <view class="attachmentPopup">
  2.                                 <view style="width: 100%;height:  100%;" v-if="Article.file_type==1">
  3.                                         <image style="width: 100%;height: 90%;" :show-menu-by-longpress="true" :src="Article.file"
  4.                                                 mode="aspectFit" @click="previewImage({url:Article.file})"></image>
  5.                                         <view class="attachmentTips">
  6.                                                 长按保存图片
  7.                                         </view>
  8.                                 </view>
  9.                                 <view style="width: 100%;height: 100%;" v-if="Article.file_type==2">
  10.                                         <video style="width: 100%;height: 90%;" :muted="true" :src="Article.file"
  11.                                                 v-if="Article.file"></video>
  12.                                         <view class="attachmentTips" @click="onStartDownload">
  13.                                                 点击保存视频
  14.                                         </view>
  15.                                 </view>
  16.                                 <view style="width: 100%;height: 100%;" v-if="Article.file_type==3">
  17.                                         <view class="attachmentBorder flex jc ac" style="width: 100%;height: 90%;">
  18.                                                 <view class="">
  19.                                                         <image class="attachmentBorderimg" src="/static/file.png" mode="aspectFit"
  20.                                                                 @click="viewfile">
  21.                                                         </image>
  22.                                                         <view class="attachmentTips">
  23.                                                                 点击预览文件
  24.                                                         </view>
  25.                                                 </view>
  26.                                         </view>
  27.                                         <view class="attachmentTips">
  28.                                                 保存文件请点击预览文件页面右上角的三个小点
  29.                                         </view>
  30.                                 </view>
  31.                         </view>
复制代码
  1.         .attachmentPopup {
  2.                 width: 690rpx;
  3.                 height: 60vh;
  4.                 padding: 70rpx 30rpx 30rpx 30rpx;
  5.                 box-sizing: border-box;
  6.                 .attachmentTips {
  7.                         width: 100%;
  8.                         font-size: 26rpx;
  9.                         color: #999;
  10.                         text-align: center;
  11.                         margin-top: 20rpx;
  12.                 }
  13.                 .attachmentBorder {
  14.                         border-radius: 18rpx;
  15.                         border: 1rpx solid #999;
  16.                         .attachmentBorderimg {
  17.                                 width: 300rpx;
  18.                                 height: 300rpx;
  19.                                 margin: auto;
  20.                         }
  21.                 }
  22.         }
复制代码
js
  1.                
  2.         // 预览图片   使用可多张可单张 多张就传数组arr,和当前的index,如果网络地址也要传一下
  3.         // {
  4.         //         url: this.user.aboutphoto
  5.         // }
  6.         // this.$publicfun.previewImage({
  7.         //         arr: arr,
  8.         //         i: index
  9.         // })
  10.         //单张直接传地址就行
  11.         previewImage({
  12.                 arr = [],
  13.                 http = "",
  14.                 i = 0,
  15.                 url = ''
  16.         }) {
  17.                 // console.log(i);
  18.                 // console.log(url);
  19.                 // console.log(arr);
  20.                 //准备一个装图片路径的  数组imgs
  21.                 if (arr.length == 0) {
  22.                         uni.previewImage({
  23.                                 urls: [url],
  24.                                 current: i
  25.                         })
  26.                         return;
  27.                 }
  28.                 let imgs = arr.map(item => {
  29.                         //只返回图片路径
  30.                         return http + item
  31.                 })
  32.                 uni.previewImage({
  33.                         urls: imgs,
  34.                         current: i
  35.                 })
  36.         },
  37. //获取权限
  38.                         onStartDownload() {
  39.                                 wx.getSetting({
  40.                                         success: (res) => {
  41.                                                 if (res.authSetting['scope.writePhotosAlbum'] === undefined) {
  42.                                                         wx.authorize({
  43.                                                                 scope: 'scope.writePhotosAlbum',
  44.                                                                 success: () => {
  45.                                                                         this.saveVideo()
  46.                                                                         return
  47.                                                                 },
  48.                                                                 fail: (err) => {
  49.                                                                         console.log('授权失败:', err)
  50.                                                                 }
  51.                                                         })
  52.                                                 } else if (!res.authSetting['scope.writePhotosAlbum']) {
  53.                                                         wx.openSetting({
  54.                                                                 success: (res) => {
  55.                                                                         if (res.authSetting['scope.writePhotosAlbum']) {
  56.                                                                                 this.saveVideo()
  57.                                                                                 return
  58.                                                                         }
  59.                                                                 }
  60.                                                         })
  61.                                                 } else {
  62.                                                         this.saveVideo()
  63.                                                         return
  64.                                                 }
  65.                                         }
  66.                                 })
  67.                         },
  68.                         //保存视频
  69.                         saveVideo() {
  70.                                 console.log('操作了');
  71.                                 // uni.showLoading()
  72.                                 uni.downloadFile({
  73.                                         url: this.Article.file,
  74.                                         timeout: 30000,
  75.                                         header: {
  76.                                                 "Content-Type": "video/mp4"
  77.                                         },
  78.                                         success: res => {
  79.                                                 console.log(this.Article.file);
  80.                                                 uni.saveVideoToPhotosAlbum({
  81.                                                         filePath: res.tempFilePath,
  82.                                                         success: res => {
  83.                                                                 console.log('进入保存');
  84.                                                                 uni.hideLoading()
  85.                                                                 uni.showToast({
  86.                                                                         title: "保存成功",
  87.                                                                         duration: 2000,
  88.                                                                 })
  89.                                                         }
  90.                                                 })
  91.                                         },
  92.                                         fail() {
  93.                                                 uni.showToast({
  94.                                                         title: "保存失败",
  95.                                                         duration: 2000,
  96.                                                 })
  97.                                                 uni.hideLoading()
  98.                                         }
  99.                                 })
  100.                                 uni.hideLoading()
  101.                         },
  102.                         //预览文件
  103.                         viewfile() {
  104.                                 uni.downloadFile({
  105.                                         url: this.Article.file,
  106.                                         timeout: 30000,
  107.                                         header: {
  108.                                                 "Content-Type": "video/mp4"
  109.                                         },
  110.                                         success: res => {
  111.                                                 uni.openDocument({
  112.                                                         filePath: res.tempFilePath,
  113.                                                         showMenu: true,
  114.                                                         success: function(openRes) {
  115.                                                                 console.log('打开文档成功', openRes);
  116.                                                         },
  117.                                                 })
  118.                                         },
  119.                                         fail() {
  120.                                                 uni.showToast({
  121.                                                         title: "保存失败",
  122.                                                         duration: 2000,
  123.                                                 })
  124.                                                 uni.hideLoading()
  125.                                         }
  126.                                 })
  127.                                 // wx.getFileSystemManager()
  128.                         },
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表