アルバムと写真をアルバムに保存するためのWeChatアプレット

アルバムと写真をアルバムに保存するためのWeChatアプレット

私は現在、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 を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WeChatアプレットは写真の撮影とアルバムからの写真の選択を実現します
  • WeChatアプレットが写真をアルバムに保存する許可設定
  • WeChatアプレットは写真を撮ったり、アルバムから写真を選択してアップロードするコード例
  • WeChatアプレットは写真をアルバムに保存する機能を実装しました
  • WeChat アプレット chooseImage の使い方 (ローカル アルバムから画像を選択するか、カメラを使用して写真を撮る)
  • WeChatアプレットの開発:アルバムから写真を取得し、カメラを使用して写真を撮り、ローカルの写真をアップロードします

<<:  mysql8.0.19 でパスワードを忘れた場合の完璧な解決策

>>:  Dockerはmacvlanをベースにホスト間コンテナ通信を実装する

推薦する

JavaScript setinterval 1秒遅延ソリューション

setinterval を使用すると、ページを開いた直後に 1 秒の遅延後に実行されることがわかりま...

CocosCreator 学習モジュールスクリプト

Cocos Creator モジュラースクリプトCocos Creator を使用すると、コードを複...

http:// の代わりに // を使用する利点は何ですか (アダプティブ https)

//デフォルトプロトコル/ デフォルト プロトコルの使用は、リソース アクセス プロトコルが現在の...

CSS3 を使用して色付きのプログレスバーアニメーションを実装する例

簡単なチュートリアルこれは CSS3 カラー プログレス バー アニメーション効果です。 CSS3 ...

MySQL における SQL ページングクエリのいくつかの実装方法と利点と欠点

【SQL】SQLページングクエリの概要開発プロセスではページングが必要になることがよくあります。今日...

HTML Web ページにおける URL の表現

HTML では、一般的な URL はさまざまな方法で表現されます。相対 URL:コードをコピーコード...

Vueは開始時間と終了時間の範囲クエリを実装します

この記事では、Vueで開始時間と終了時間の範囲を照会する方法を参考までに紹介します。具体的な内容は次...

Vue でルートをジャンプする方法をご存知ですか?

目次最初の方法: router-link (宣言型ルーティング) 2番目の方法: router.pu...

JavaScript のカンマ式が含まれている場合について

JavaScript の if ステートメントで英語のカンマ「,」が表示されることがあります。これは...

Nodejs での WeChat アプレット メッセージ プッシュの実装

サブスクリプションメッセージテンプレートを選択または作成するWeChat アプレットにログインし、「...

CSSタグの表示モードの詳細な説明

ラベル表示モード(重要) divタグとspanタグ1. スタイルはまったく同じですが、ラベルが異なり...

HTMLチェックボックス説明テキストをクリックして状態を選択/チェック解除します

Web 開発では、チェックボックスは小さく、ユーザーにとって操作があまり便利ではないため、ユーザーが...

HTML文書の基本構造(Webページ作成の基礎知識)

HTMLの動作原理: 1. ローカル操作: ブラウザでhtmlファイルを開く2. リモートアクセス...

ウェブデザインには目的、アイデア、思考、そして粘り強さがなければならない

<br />はじめに:このアイデアは、数日前に上級ウェブデザインの次の記事を考えていると...

純粋な CSS で実装された 3 つの通知バーのスクロール効果

序文通知バー コンポーネントは、比較的一般的なコンポーネントです。基本的に、すべてのサイトにこのよう...