ToB企服应用市场:ToB评测及商务社交产业平台
标题:
uniapp 微信小步伐,图片,视频,文件预览弹窗,可保存
[打印本页]
作者:
南七星之家
时间:
6 小时前
标题:
uniapp 微信小步伐,图片,视频,文件预览弹窗,可保存
<view class="attachmentPopup">
<view style="width: 100%;height: 100%;" v-if="Article.file_type==1">
<image style="width: 100%;height: 90%;" :show-menu-by-longpress="true" :src="Article.file"
mode="aspectFit" @click="previewImage({url:Article.file})"></image>
<view class="attachmentTips">
长按保存图片
</view>
</view>
<view style="width: 100%;height: 100%;" v-if="Article.file_type==2">
<video style="width: 100%;height: 90%;" :muted="true" :src="Article.file"
v-if="Article.file"></video>
<view class="attachmentTips" @click="onStartDownload">
点击保存视频
</view>
</view>
<view style="width: 100%;height: 100%;" v-if="Article.file_type==3">
<view class="attachmentBorder flex jc ac" style="width: 100%;height: 90%;">
<view class="">
<image class="attachmentBorderimg" src="/static/file.png" mode="aspectFit"
@click="viewfile">
</image>
<view class="attachmentTips">
点击预览文件
</view>
</view>
</view>
<view class="attachmentTips">
保存文件请点击预览文件页面右上角的三个小点
</view>
</view>
</view>
复制代码
.attachmentPopup {
width: 690rpx;
height: 60vh;
padding: 70rpx 30rpx 30rpx 30rpx;
box-sizing: border-box;
.attachmentTips {
width: 100%;
font-size: 26rpx;
color: #999;
text-align: center;
margin-top: 20rpx;
}
.attachmentBorder {
border-radius: 18rpx;
border: 1rpx solid #999;
.attachmentBorderimg {
width: 300rpx;
height: 300rpx;
margin: auto;
}
}
}
复制代码
js
// 预览图片 使用可多张可单张 多张就传数组arr,和当前的index,如果网络地址也要传一下
// {
// url: this.user.aboutphoto
// }
// this.$publicfun.previewImage({
// arr: arr,
// i: index
// })
//单张直接传地址就行
previewImage({
arr = [],
http = "",
i = 0,
url = ''
}) {
// console.log(i);
// console.log(url);
// console.log(arr);
//准备一个装图片路径的 数组imgs
if (arr.length == 0) {
uni.previewImage({
urls: [url],
current: i
})
return;
}
let imgs = arr.map(item => {
//只返回图片路径
return http + item
})
uni.previewImage({
urls: imgs,
current: i
})
},
//获取权限
onStartDownload() {
wx.getSetting({
success: (res) => {
if (res.authSetting['scope.writePhotosAlbum'] === undefined) {
wx.authorize({
scope: 'scope.writePhotosAlbum',
success: () => {
this.saveVideo()
return
},
fail: (err) => {
console.log('授权失败:', err)
}
})
} else if (!res.authSetting['scope.writePhotosAlbum']) {
wx.openSetting({
success: (res) => {
if (res.authSetting['scope.writePhotosAlbum']) {
this.saveVideo()
return
}
}
})
} else {
this.saveVideo()
return
}
}
})
},
//保存视频
saveVideo() {
console.log('操作了');
// uni.showLoading()
uni.downloadFile({
url: this.Article.file,
timeout: 30000,
header: {
"Content-Type": "video/mp4"
},
success: res => {
console.log(this.Article.file);
uni.saveVideoToPhotosAlbum({
filePath: res.tempFilePath,
success: res => {
console.log('进入保存');
uni.hideLoading()
uni.showToast({
title: "保存成功",
duration: 2000,
})
}
})
},
fail() {
uni.showToast({
title: "保存失败",
duration: 2000,
})
uni.hideLoading()
}
})
uni.hideLoading()
},
//预览文件
viewfile() {
uni.downloadFile({
url: this.Article.file,
timeout: 30000,
header: {
"Content-Type": "video/mp4"
},
success: res => {
uni.openDocument({
filePath: res.tempFilePath,
showMenu: true,
success: function(openRes) {
console.log('打开文档成功', openRes);
},
})
},
fail() {
uni.showToast({
title: "保存失败",
duration: 2000,
})
uni.hideLoading()
}
})
// wx.getFileSystemManager()
},
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4