私は現在、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をベースにホスト間コンテナ通信を実装する
非常に珍しいパラメータ文字化けの問題に遭遇しました。まずページを見てみましょう写真に示すように、月次...
目次1. 背景2. 操作手順3. Portinerをインストールする3.1 Dockerのデプロイメ...
「キャンセル」ボタンは必要な操作プロセスの一部ではなく、デザイン上の主要な要素として表示されません...
目次Vueプロジェクトのパッケージ化、起動、最適化Vueプロジェクトのパッケージ化プロジェクトホステ...
1. 公式ウェブサイトから 64 ビットの zip ファイルをダウンロードします。 2. インスト...
背景あっという間に忙しい一年が終わり、毎年恒例のイベントの時期がやってきます。お祭り気分を演出するに...
WeChat アプレットのスクロール ビューでは、プルアップして読み込むときにバグが多く発生します...
1. カスタムテキスト選択 ::選択{ 背景: 赤; 色: 黒; } 2. ビデオコントロールからダ...
この記事の例では、スライダー検証を実装するためのjsキャンバスの具体的なコードを参考までに共有してい...
目次ヴィテ建てる構成vite.config.tsルーターtsタイプvue3 の知識設定小道具コンテク...
需要背景ビジネス テーブル tb_image のデータの一部は次のとおりです。id は一意ですが、i...
登録するフロントエンドは、vue の axios を使用して値を渡し、取得したアカウントとパスワード...
[LeetCode] 177. 最も高い給与従業員テーブルからn番目に高い給与を取得する SQL ...
最近、データベース データのスケジュールされた移行を実行する必要があります。実行プロセス中に何らかの...
この記事では、セグメンター効果を実現するためのvue uniappの具体的なコードを参考までに共有し...