小程序
小游戏
企业微信
微信支付
扫描小程序码分享
现在有个需求,在H5的页面上放一个视频,想把这个视频通过微信内置游览器打开的时候可以将这个视频保存到手机里面(一键下载或者长按保存都可以),希望了解的大佬指点一二。
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
用vue的插件后面实现了,望周知
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
问一下实现了吗
请问大佬您后面解决这个问题了吗?方案是什么呀?
a标签直接下,不可以嘛,ios可能不行,有安全提示
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
用vue的插件后面实现了,望周知
问一下实现了吗
请问大佬您后面解决这个问题了吗?方案是什么呀?
H5跳转小程序
小程序中实现一键下载并保存到相册功能
// pages/downloadVideo/downloadVideo.js
Page({
/**
* 页面的初始数据
*/
data: {
videoUrl: '',
//初始值设置为不显示
isShow:"none"
},
downloadVideoBtn(){
this.onStartDownload()
},
downloadVideo(){
//将this对象复制到临时变量that
var that = this;
wx.showLoading({
title: '下载中',
mask:true
})
let fileName = new Date().valueOf();
console.log('downloadFile调用:this.data.videoUrl', this.data.videoUrl)
wx.downloadFile({
url: this.data.videoUrl,
filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4',
header: {
"Content-Type":"video/mp4"
},
success: res => {
console.log('downloadFile成功回调res:', res)
wx.hideLoading()
let filePath = res.filePath; // 下载到本地获取临时路径
let fileMgr = wx.getFileSystemManager();
wx.saveVideoToPhotosAlbum({ // 保存到相册
filePath,
success: file => {
console.log('saveVideoToPhotosAlbum成功回调file:', file)
wx.showToast({
title: '视频保存成功',
duration:3000,
icon:'none'
})
fileMgr.unlink({ // 删除临时文件
filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4',
})
},
fail: err => {
console.log('saveVideoToPhotosAlbum失败回调err:', err)
fileMgr.unlink({ // 删除临时文件
filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4'
})
wx.showToast({
title: '视频保存失败',
duration:3000,
icon:'none'
})
},
complete() {
wx.hideLoading()
that.setData({ // 将web-view展示,即跳转至H5
isShow: 'block'
})
}
})
},
fail(e) {
console.log('失败e', e)
wx.showToast({
title: '视频保存失败1',
duration:3000,
icon:'none'
})
},
complete() {
// wx.hideLoading();
}
})
},
onStartDownload(){
//获取用户授权
wx.getSetting({
success:(res)=> {
if (res.authSetting['scope.writePhotosAlbum'] === undefined) {
wx.authorize({
scope: 'scope.writePhotosAlbum',
success:()=> {
console.log('打开了授权')
this.downloadVideo()
},
fail:(err)=> {
console.log('授权失败:', err)
}
})
} else if (!res.authSetting['scope.writePhotosAlbum']) {
wx.openSetting({
success:(res)=> {
console.log('openSetting成功回调:res', res)
if (res.authSetting['scope.writePhotosAlbum']) {
console.log('授权了')
this.downloadVideo()
} else {
}
},
fail:(err)=> {
},
})
} else {
this.downloadVideo()
}
}
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let that = this
console.log('打开了小程序的下载视频页面:options.videoUrl', options.videoUrl)
this.setData({// 把从H5页面获取到的属性值赋给,供页使用
videoUrl:options.videoUrl
})
this.onStartDownload()
console.log('that.data.videoUrl:', that.data.videoUrl)
},
a标签直接下,不可以嘛,ios可能不行,有安全提示