I am currently developing a video and tool app, similar to Xiao Nian Gao. I need to save the albums made by users to the local phone album. The page effect is as follows: The implemented logic is as follows: 1. Obtain user authorization. If authorized, download directly. 2. If the user has not authorized before, call up the user authorization interface and ask the user to authorize. If the user agrees, the software will be downloaded. If the user disagrees, a prompt will be displayed. 3. If authorization was previously requested but the user refused, open the settings interface and guide the user to enable authorization. The following is the code implementation, everyone is welcome to copy, paste and comment. First the WXML code: <view class="album-operate"> <view class="edit" bindtap="deleteAlbum" data-id="{{item.id}}" data-status="{{item.status}}"> Delete</view> <button class="save" data-link="{{item.link}}" data-status="{{item.status}}" bindtap='downloadAlbum'> Save/Download</button> <view class="share" bindtap="desabledShare" wx:if="{{item.status==2}}">Share</view> <button class="share" open-type="share" data-id="{{item.id}}" data-cover="{{item.cover_url}}" data-name="{{item.name}}" wx:if="{{item.status!=2}}"> Share</button> </view> Below is the JS code // Authorize download downloadAlbum: function(e) { var that = this; // Album status var status = e.target.dataset.status; // Download link address var link = e.target.dataset.link; if (status == 2) { wx.showToast({ title: 'The album is being produced, please wait', icon: 'none' }); } else { // Get user authorization wx.getSetting({ success(res) { // If authorized if (res.authSetting['scope.writePhotosAlbum']) { that.saveAlbum(link); // If not authorized } else if (res.authSetting['scope.writePhotosAlbum'] === undefined) { //Call up user authorization wx.authorize({ scope: 'scope.writePhotosAlbum', success() { that.saveAlbum(link); }, fail() { wx.showToast({ title: 'You don't have authorization, so you can't save it to the album', icon: 'none' }) } }) // If authorization was previously denied } else { wx.openSetting({ success(res) { if (res.authSetting['scope.writePhotosAlbum']) { that.saveAlbum(link); } else { wx.showToast({ title: 'You don't have authorization, so you can't save it to the album', icon: 'none' }) } } }) } } }) } }, // Save the album saveAlbum: function (link) { wx.downloadFile({ url: link, success(res) { if (res.statusCode === 200) { var path = res.tempFilePath wx.saveVideoToPhotosAlbum({ filePath: path, success(res) { if (res.errMsg == 'saveVideoToPhotosAlbum:ok') { wx.showToast({ title: 'Download completed', }) } } }) } } }) }, The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: The perfect solution for forgetting the password in mysql8.0.19
>>: Docker implements cross-host container communication based on macvlan
The basic principle of all animations is to displ...
Preface If you are like me, as a hard-working Jav...
The following error message appears when installi...
Origin: A few days ago, a tester sent a requireme...
This article example shares the specific code of ...
Recently I saw the article Build your own React o...
Table of contents Preface vue.config.js configura...
Preface In the process of continuous code deliver...
Table of contents 1. CDN introduction 1.1 react (...
<br />Table is an awkward tag in XHTML, so y...
This article will use Docker containers (orchestr...
In the later stage of exploiting SQL injection vu...
Preface We may have heard of the concept of rowid...
It has been three or four months since I joined Wo...
1. Rendering2. Operation steps 1. Apply for Tence...