私は現在、Xiao Nian Gao に似たビデオおよびツール アプリを開発しています。ユーザーが作成したアルバムをローカルの電話アルバムに保存する必要があります。ページ効果は次のとおりです。 実装されたロジックは次のとおりです。 1. ユーザーの承認を取得します。承認された場合は、直接ダウンロードします。 2. ユーザーが以前に認証したことがない場合は、ユーザー認証インターフェイスを呼び出して、ユーザーに認証を求めます。ユーザーが同意すると、ソフトウェアがダウンロードされます。ユーザーが同意しない場合は、プロンプトが表示されます。 3. 以前に認証が要求されたがユーザーが拒否した場合は、設定インターフェースを開き、ユーザーに認証を有効にするように指示します。 以下はコード実装です。どなたでもコピー、貼り付け、コメントしていただけます。 まず WXML コード: <view class="アルバム操作"> <view class="edit" bindtap="deleteAlbum" data-id="{{item.id}}" data-status="{{item.status}}"> 削除</view> <button class="save" data-link="{{item.link}}" data-status="{{item.status}}" bindtap='downloadAlbum'> 保存/ダウンロード</button> <view class="share" bindtap="desabledShare" wx:if="{{item.status==2}}">共有</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}}"> シェア</button> </ビュー> 以下はJSコードです // ダウンロードを許可する downloadAlbum: function(e) { var that = this; // アルバムのステータス var status = e.target.dataset.status; // ダウンロード リンク アドレス var link = e.target.dataset.link; (ステータス == 2)の場合{ wx.showToast({ タイトル: 「アルバムは現在制作中です。しばらくお待ちください」 アイコン: 'なし' }); } それ以外 { // ユーザー認証を取得する wx.getSetting({ 成功(res) { // 承認された場合 if (res.authSetting['scope.writePhotosAlbum']) { that.saveAlbum(リンク); // 承認されていない場合 } else if (res.authSetting['scope.writePhotosAlbum'] === undefined) { //ユーザー認証を呼び出す wx.authorize({ スコープ: 'scope.writePhotosAlbum', 成功() { that.saveAlbum(リンク); }, 失敗() { wx.showToast({ タイトル: 「権限がないため、アルバムに保存できません」 アイコン: 'なし' }) } }) // 以前に認証が拒否された場合 } else { wx.openSetting({ 成功(res) { res.authSetting['scope.writePhotosAlbum']の場合{ that.saveAlbum(リンク); } それ以外 { wx.showToast({ タイトル: 「権限がないため、アルバムに保存できません」 アイコン: 'なし' }) } } }) } } }) } }, // アルバムを保存する saveAlbum: function (link) { wx.downloadFile({ url: リンク、 成功(res) { (res.statusCode === 200の場合){ var パス = res.tempFilePath wx.saveVideoToPhotosAlbum({ filePath: パス、 成功(res) { res.errMsg == 'saveVideoToPhotosAlbum:ok' の場合 { wx.showToast({ タイトル: 「ダウンロードが完了しました」 }) } } }) } } }) }, 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: mysql8.0.19 でパスワードを忘れた場合の完璧な解決策
>>: Dockerはmacvlanをベースにホスト間コンテナ通信を実装する
Alibaba Cloud Diskの最後のアップデートからかなり時間が経ちました。ネットユーザー...
これは私が Vue フレームワークを独学していたときに真似したウェブサイトです。いくつかの都市の天気...
tortoiseGit のインストール時にいつも問題があったので、単純に svn に変更しました。途...
Docker の作成Docker Compose は、管理対象コンテナをプロジェクト、サービス、コン...
ページの公開名: #wrapper - ページの外側の端が全体のレイアウト幅を制御します#conta...
COALESCE は、各パラメータ式 (expression_1、expression_2、...、...
基本的な紹介特徴Flexbox は、よりシンプルで効率的なレイアウト方法を提供する CSS 表示タイ...
Oracle データベースから MySQL データベースへの移行では、Oracle データベース モ...
1. トップレベルの使用法1. cnpmをインストールする npm i -g cnpm --regi...
MySQL でテーブルスペースの断片化を解消する詳細な例断片化の原因(1)テーブルのストレージは断片...
このブログを書くつもりはなかったのですが、実際の操作中に、ネットワークの問題に圧倒されたこと (ネッ...
目次1. 親コンポーネントが子コンポーネントにデータを渡す1.1. 親コンポーネントコード1.2. ...
目次概要ブロブBlob の動作BLOB ダウンロード ファイルブロブ画像のローカル表示BLOB ファ...
Mac で Docker を使用して Oracle をデプロイする方法まずdockerをインストール...
この記事の例では、カウントダウン効果を実現するためのJavaScriptの具体的なコードを参考までに...