ホームページ ウェブフロントエンド jsチュートリアル WeChat アプレットの複数ファイルのダウンロードのカプセル化の使用

WeChat アプレットの複数ファイルのダウンロードのカプセル化の使用

Mar 23, 2018 am 09:54 AM
使用 アプレット ドキュメントをダウンロード

今回は、WeChat ミニ プログラムの複数の ファイル ダウンロード のパッケージ化について説明します。WeChat ミニ プログラムの複数のファイル ダウンロードのカプセル化を使用する場合の の注意事項について説明します。実際のケースを見てみましょう。

要件

友達のサークルで共有するには、プロモーション

画像 を生成する必要があります。このプロモーション画像には、QR コード、さまざまな背景画像、さまざまなテキストが含まれています。この種の画像生成には、サーバーサイド生成を使用することも検討しましたが、サーバーのパフォーマンスをより多く消費するため、最終的にローカル生成を使用することにしました。

まず、ミニプログラムには制限があり、パッケージは2mを超えることはできず、複数の背景画像がある可能性があるため、背景画像とQRコード画像をサーバーに配置することでサイズを削減する予定ですミニプログラムパッケージの背景画像を柔軟に切り替えます。

共有画像を描画する場合、インターネットアドレスを直接使用できますが、問題が発生したため画像を生成できない可能性があるため、画像ファイルをダウンロードする必要があります。

WeChat にはファイルをダウンロードするための API がありますが、ファイルの一時パスを返します。これはミニ プログラムの現在の起動中にのみ通常使用できます。ファイルを永続的に保存する必要がある場合は、積極的に wx を呼び出す必要があります。次回ミニ プログラムが開始される前に saveFile が起動時にアクセスされます。

そこで、まずダウンロードしたファイルと保存したファイルをカプセル化します

ダウンロードをカプセル化してファイルを保存します

このメソッドは比較的単純です

パラメータ:

  1. id を含むオブジェクト渡されない場合はダウンロードする必要があります。デフォルトはダウンロード URL です。ID が必要な理由は、ダウンロードが 1 つのファイルであることを区別できるためです。ダウンロードされたファイル (WeChat アプレットのバックグラウンド設定が必要です。具体的な設定方法は WeChat 公式ドキュメントを参照してください)

  2. success 成功コールバックの戻りパラメータは、id、savedFilePath を含むオブジェクトです

  3. fail 失敗コールバック、ダウンロード失敗、および保存はすべて失敗とみなされます

  4. /**
     * 下载保存一个文件
     */
    function downloadSaveFile(obj) {
      let that = this;
      let success = obj.success;
      let fail = obj.fail;
      let id = "";
      let url = obj.url;
      if (obj.id){
        id = obj.id;
      }else{
        id = url;
      }
      // console.info("%s 开始下载。。。", obj.url);
      wx.downloadFile({
        url: obj.url,
        success: function (res) {
          wx.saveFile({
            tempFilePath: res.tempFilePath,
            success: function (result) {
              result.id = id;
              if (success) {
                success(result);
              }
            },
            fail: function (e) {
              console.info("保存一个文件失败");
              if (fail) {
                fail(e);
              }
            }
          })
        },
        fail: function (e) {
          console.info("下载一个文件失败");
          if (fail) {
            fail(e);
          }
        }
      })
    }
    ログイン後にコピー
  5. ダウンロード メソッド (wx.downloadFile( obj)) を使用して、WeChat

    ミニ プログラムでサーバー ドメイン名を構成する必要があります。ミニ プログラムのバックグラウンドでサーバー ドメイン名を構成してください。詳細については、WeChat の公式ドキュメントを参照してください。

複数のファイルをダウンロードして保存する

複数のファイルをダウンロードして保存する前に、すべてのファイルが正常にダウンロードされている必要があります。戻りは成功しました

パラメータ:

urls ダウンロード アドレス配列を含むオブジェクト、複数の URL ダウンロードをサポート [url1, url2]

    success ダウンロードは成功しました (成功したとみなされるには、すべてのファイルが正常にダウンロードされる必要があります) コールバック パラメータマップ、キー(id) -> 値 ({id,savedFilePath})
  1. fail ダウンロードは失敗します。1 つのメソッドが失敗する限り、呼び出しは失敗します
  2. /**
     * 多文件下载并且保存,强制规定,必须所有文件下载成功才算返回成功
     */
    function downloadSaveFiles(obj) {
      // console.info("准备下载。。。");
      let that = this;
      let success = obj.success; //下载成功
      let fail = obj.fail; //下载失败
      let urls = obj.urls; //下载地址 数组,支持多个 url下载 [url1,url2]
      let savedFilePaths = new Map();
      let urlsLength = urls.length; // 有几个url需要下载
      for (let i = 0; i < urlsLength; i++) {
        downloadSaveFile({
          url: urls[i],
          success: function (res) {
            //console.dir(res);
            //一个文件下载保存成功
            let savedFilePath = res.savedFilePath;
                    
            savedFilePaths.set(res.id, res);
            console.info("savedFilePath:%s", savedFilePath);
            if (savedFilePaths.size == urlsLength) { //如果所有的url 才算成功
              if (success){
                success(savedFilePaths)
              }
              
            }
          },
          fail: function (e) {
            console.info("下载失败");
            if (fail) {
              fail(e);
            }
          }
        })
      }
    }
    ログイン後にコピー
  3. download.js ファイルを完了します
  4. /**
     * 下载管理器
     * Created by 全科 on 2018/1/27.
     */
    /**
     * 下载保存一个文件
     */
    function downloadSaveFile(obj) {
      let that = this;
      let success = obj.success;
      let fail = obj.fail;
      let id = "";
      let url = obj.url;
      if (obj.id){
        id = obj.id;
      }else{
        id = url;
      }
      // console.info("%s 开始下载。。。", obj.url);
      wx.downloadFile({
        url: obj.url,
        success: function (res) {
          wx.saveFile({
            tempFilePath: res.tempFilePath,
            success: function (result) {
              result.id = id;
              if (success) {
                success(result);
              }
            },
            fail: function (e) {
              console.info("保存一个文件失败");
              if (fail) {
                fail(e);
              }
            }
          })
        },
        fail: function (e) {
          console.info("下载一个文件失败");
          if (fail) {
            fail(e);
          }
        }
      })
    }
    /**
     * 多文件下载并且保存,强制规定,必须所有文件下载成功才算返回成功
     */
    function downloadSaveFiles(obj) {
      // console.info("准备下载。。。");
      let that = this;
      let success = obj.success; //下载成功
      let fail = obj.fail; //下载失败
      let urls = obj.urls; //下载地址 数组,支持多个 url下载 [url1,url2]
      let savedFilePaths = new Map();
      let urlsLength = urls.length; // 有几个url需要下载
      for (let i = 0; i < urlsLength; i++) {
        downloadSaveFile({
          url: urls[i],
          success: function (res) {
            console.dir(res);
            //一个文件下载保存成功
            let savedFilePath = res.savedFilePath;                
            savedFilePaths.set(res.id, res);
            console.info("savedFilePath:%s", savedFilePath);
            if (savedFilePaths.size == urlsLength) { //如果所有的url 才算成功
              if (success){
                success(savedFilePaths)
              }          
            }
          },
          fail: function (e) {
            console.info("下载失败");
            if (fail) {
              fail(e);
            }
          }
        })
      }
    }
    module.exports = {
      downloadSaveFiles: downloadSaveFiles
    }
    ログイン後にコピー

まず

import download from "download.js"
ログイン後にコピー

をインポートしてから、

let url1 = 'https://xcx.upload.utan.com/article/coverimage/2018/01/25/eyJwaWMiOiIxNTE2ODU2Nzc0Njk3OCIsImRvbWFpbiI6InV0YW50b3V0aWFvIn0=';
let url2 = 'https://xcx.upload.utan.com/article/coverimage/2018/01/26/eyJwaWMiOiIxNTE2OTcyNDg0NDUzOSIsImRvbWFpbiI6InV0YW50b3V0aWFvIn0=';
download.downloadSaveFiles({
  urls: [url1, url2],
  success: function (res) {
    // console.dir(res);
   
    console.info(res.get(url2).savedFilePath)
  },
  fail: function (e) {
    console.info("下载失败");
  }
);
ログイン後にコピー
を呼び出します。この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

Angular2の親子コンポーネントの通信方法

​​

jQueryコードの最適化方法のまとめ

360ブラウザ互換モードで不完全なページ表示に対処する方法

以上がWeChat アプレットの複数ファイルのダウンロードのカプセル化の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

マグネットリンクの使い方 マグネットリンクの使い方 Feb 18, 2024 am 10:02 AM

マグネット リンクは、リソースをダウンロードするためのリンク方法であり、従来のダウンロード方法よりも便利で効率的です。マグネット リンクを使用すると、中間サーバーに依存せずに、ピアツーピア方式でリソースをダウンロードできます。この記事ではマグネットリンクの使い方と注意点を紹介します。 1. マグネット リンクとは? マグネット リンクは、P2P (Peer-to-Peer) プロトコルに基づくダウンロード方式です。ユーザーはマグネット リンクを通じてリソースの発行者に直接接続し、リソースの共有とダウンロードを完了できます。従来のダウンロード方法と比較して、磁気

mdfおよびmdsファイルの使用方法 mdfおよびmdsファイルの使用方法 Feb 19, 2024 pm 05:36 PM

mdf ファイルと mds ファイルの使用方法 コンピューター技術の継続的な進歩により、さまざまな方法でデータを保存および共有できるようになりました。デジタル メディアの分野では、特殊なファイル形式に遭遇することがよくあります。この記事では、一般的なファイル形式である mdf および mds ファイルについて説明し、その使用方法を紹介します。まず、mdf ファイルと mds ファイルの意味を理解する必要があります。 mdf は CD/DVD イメージ ファイルの拡張子で、mds ファイルは mdf ファイルのメタデータ ファイルです。

CrystalDiskmarkとはどのようなソフトウェアですか? -crystaldiskmarkの使い方は? CrystalDiskmarkとはどのようなソフトウェアですか? -crystaldiskmarkの使い方は? Mar 18, 2024 pm 02:58 PM

CrystalDiskMark は、シーケンシャルおよびランダムの読み取り/書き込み速度を迅速に測定する、ハード ドライブ用の小型 HDD ベンチマーク ツールです。次に、編集者が CrystalDiskMark と Crystaldiskmark の使用方法を紹介します。 1. CrystalDiskMark の概要 CrystalDiskMark は、機械式ハード ドライブとソリッド ステート ドライブ (SSD) の読み取りおよび書き込み速度とパフォーマンスを評価するために広く使用されているディスク パフォーマンス テスト ツールです。 ). ランダム I/O パフォーマンス。これは無料の Windows アプリケーションで、使いやすいインターフェイスとハード ドライブのパフォーマンスのさまざまな側面を評価するためのさまざまなテスト モードを提供し、ハードウェアのレビューで広く使用されています。

foob​​ar2000のダウンロード方法は? -foobar2000の使い方 foob​​ar2000のダウンロード方法は? -foobar2000の使い方 Mar 18, 2024 am 10:58 AM

foob​​ar2000 は、音楽リソースをいつでも聴くことができるソフトウェアです。あらゆる種類の音楽をロスレス音質で提供します。音楽プレーヤーの強化版により、より包括的で快適な音楽体験を得ることができます。その設計コンセプトは、高度なオーディオをコンピュータ上で再生可能 デバイスを携帯電話に移植し、より便利で効率的な音楽再生体験を提供 シンプルでわかりやすく、使いやすいインターフェースデザイン 過度な装飾や煩雑な操作を排除したミニマルなデザインスタイルを採用また、さまざまなスキンとテーマをサポートし、自分の好みに合わせて設定をカスタマイズし、複数のオーディオ形式の再生をサポートする専用の音楽プレーヤーを作成します。過度の音量による聴覚障害を避けるために、自分の聴覚の状態に合わせて調整してください。次は私がお手伝いさせてください

ファイルをダウンロードした後にPythonで開く操作 ファイルをダウンロードした後にPythonで開く操作 Apr 03, 2024 pm 03:39 PM

Python には、ダウンロードしたファイルを開くための次のオプションが用意されています。 open() 関数: 指定されたパスとモード (「r」、「w」、「a」など) を使用してファイルを開きます。リクエスト ライブラリ: download() メソッドを使用して、名前を自動的に割り当て、ファイルを直接開きます。 Pathlib ライブラリ: write_bytes() メソッドと read_text() メソッドを使用して、ファイルの内容を読み書きします。

Baidu Netdisk アプリの使用方法 Baidu Netdisk アプリの使用方法 Mar 27, 2024 pm 06:46 PM

クラウド ストレージは今日、私たちの日常生活や仕事に欠かせない部分になっています。中国有数のクラウド ストレージ サービスの 1 つである Baidu Netdisk は、強力なストレージ機能、効率的な伝送速度、便利な操作体験により多くのユーザーの支持を得ています。また、重要なファイルのバックアップ、情報の共有、オンラインでのビデオの視聴、または音楽の聴きたい場合でも、Baidu Cloud Disk はニーズを満たすことができます。しかし、Baidu Netdisk アプリの具体的な使用方法を理解していないユーザーも多いため、このチュートリアルでは Baidu Netdisk アプリの使用方法を詳しく紹介します。まだ混乱しているユーザーは、この記事に従って詳細を学ぶことができます。 Baidu Cloud Network Disk の使用方法: 1. インストール まず、Baidu Cloud ソフトウェアをダウンロードしてインストールするときに、カスタム インストール オプションを選択してください。

NetEase メールボックス マスターの使用方法 NetEase メールボックス マスターの使用方法 Mar 27, 2024 pm 05:32 PM

NetEase Mailbox は、中国のネットユーザーに広く使用されている電子メール アドレスとして、その安定した効率的なサービスで常にユーザーの信頼を獲得してきました。 NetEase Mailbox Master は、携帯電話ユーザー向けに特別に作成された電子メール ソフトウェアで、電子メールの送受信プロセスが大幅に簡素化され、電子メールの処理がより便利になります。 NetEase Mailbox Master の使い方と具体的な機能について、以下ではこのサイトの編集者が詳しく紹介しますので、お役に立てれば幸いです。まず、モバイル アプリ ストアで NetEase Mailbox Master アプリを検索してダウンロードします。 App Store または Baidu Mobile Assistant で「Ne​​tEase Mailbox Master」を検索し、画面の指示に従ってインストールします。ダウンロードとインストールが完了したら、NetEase の電子メール アカウントを開いてログインします。ログイン インターフェイスは次のとおりです。

PIP ミラー ソースの簡単なガイド: 使い方を簡単にマスターする PIP ミラー ソースの簡単なガイド: 使い方を簡単にマスターする Jan 16, 2024 am 10:18 AM

簡単に始めましょう: pip ミラー ソースの使用方法 世界中での Python の人気により、pip は Python パッケージ管理の標準ツールになりました。ただし、pip を使用してパッケージをインストールするときに多くの開発者が直面する一般的な問題は速度の遅さです。これは、デフォルトでは、pip は Python 公式ソースまたはその他の外部ソースからパッケージをダウンロードしますが、これらのソースが海外のサーバーに配置されている可能性があるため、ダウンロード速度が遅くなることがあります。ダウンロード速度を向上させるために、pip ミラー ソースを使用できます。ピップミラーソースとは何ですか?簡単に言えば、ただ、

See all articles