[WeChat ミニ プログラム] GZIP 圧縮データを解凍するためのサードパーティ ライブラリ poke の紹介

  1. npm パッケージ管理ツールを使用します。

    • まず、アプレットのルートディレクトリでnpm init初期化プロジェクトを実行し、package.jsonファイルを生成します。
    • 次に、 npm: 経由で pako をインストールしますnpm install pako
    • 次に、アプレットのルート ディレクトリにminiprogram_npmという名前のフォルダーを作成します。
    • node_modules/pakoフォルダーをminiprogram_npmフォルダーにコピーします。
    • pakoを使用する必要があるページまたはコンポーネントの js ファイルに pako を導入するために使用しますrequire()
    const pako = require('pako');
    
  2. CDN を通じて導入されました:

    • ファイルを開きproject.config.json、次の構成を追加し、導入する必要があるサードパーティ ライブラリを指定します。
    {
          
          
      "setting": {
          
          
        "urlCheck": true,
        "es6": true,
        "postcss": true,
        "minified": true,
        "newFeature": true
      },
      "packOptions": {
          
          
        "ignore": []
      },
      "compileType": "miniprogram",
      "libVersion": "2.14.4",
      "appid": "your appid",
      "projectname": "your projectname",
      "debugOptions": {
          
          
        "hidedInDevtools": []
      },
      "cdnUrl": {
          
          
        "default": "https://unpkg.com/"
      },
      "usingComponents": {
          
          }
    }
    
    • pakoを使用する必要があるページまたはコンポーネントの js ファイルに pako を導入するために使用しますimport
    import pako from 'pako';
    

npm パッケージ管理ツールを使用する場合でも、CDN を通じて導入する場合でも、導入されたサードパーティ ライブラリが正しく識別されて使用できるようにするために、ミニ プログラム開発ツールにビルドする必要があります。

WeChat アプレットの環境はブラウザ環境とは異なるため、アプレットで pako ライブラリが正常に実行されるようにするには、追加の適応作業が必要になる場合があることに注意してください。


文字列を"{\"data\":\"[31, -117, 8, 0, 0, 0, 0, 0, 0, 0, -115, -112, 57, 14, -61, 48, 12, 4, -1, -62, 90, 16, -42, 36, 69, 29, 95, 9, 92, -91, 73, -31, -46, 93, -32, -65, -121, -115, 3, 75, 70, 28, -9, -125, -63, -20, 62, -34, -12, -92, 54, 89, 69, 22, -51, 12, -28, 20, -24, 69, 77, 37, 74, -96, -123, 26, 34, 2, -83, -44, -72, -60, -76, -123, -114, 46, -128, -44, -99, 78, 35, 109, 61, 93, -44, 105, -34, 105, -5, 67, 87, 0, 92, -18, -106, 84, 115, -73, -2, 44, -23, -23, 4, -17, -74, -17, 74, -67, 46, 73, -109, 119, 103, -69, -21, -10, 3, 15, -97, -100, -70, 117, -96, -19, -14, -63, -63, 45, 124, 124, -16, -28, -50, -37, -4, 1, 4, -126, -5, 117, -51, 1, 0, 0]\",\"total\":10}"オブジェクトに変換する

  • そして、[]その部分をバイト配列 (バイト配列) に変換し、GZIP アルゴリズムを使用して解凍し、次の手順に従います。
  1. まず、次のJSON.parse()メソッドを使用して文字列をオブジェクトに変換します。
const jsonString = "{\"data\":\"[31, -117, 8, 0, 0, 0, 0, 0, 0, 0, -115, -112, 57, 14, -61, 48, 12, 4, -1, -62, 90, 16, -42, 36, 69, 29, 95, 9, 92, -91, 73, -31, -46, 93, -32, -65, -121, -115, 3, 75, 70, 28, -9, -125, -63, -20, 62, -34, -12, -92, 54, 89, 69, 22, -51, 12, -28, 20, -24, 69, 77, 37, 74, -96, -123, 26, 34, 2, -83, -44, -72, -60, -76, -123, -114, 46, -128, -44, -99, 78, 35, 109, 61, 93, -44, 105, -34, 105, -5, 67, 87, 0, 92, -18, -106, 84, 115, -73, -2, 44, -23, -23, 4, -17, -74, -17, 74, -67, 46, 73, -109, 119, 103, -69, -21, -10, 3, 15, -97, -100, -70, 117, -96, -19, -14, -63, -63, 45, 124, 124, -16, -28, -50, -37, -4, 1, 4, -126, -5, 117, -51, 1, 0, 0]\",\"total\":10}";
const obj = JSON.parse(jsonString);
  1. 次に、obj.dataフィールドの値を配列に変換します。
const dataArray = JSON.parse(obj.data);
  1. 次に、Uint8Arrayオブジェクトを作成し、dataArrayその値を引数として渡し、配列を符号なし 8 ビット整数配列に変換します。
const uint8Array = new Uint8Array(dataArray);
  1. 最後に、GZIP 圧縮と解凍を処理する JavaScript ライブラリであるライブラリを使用してpako解凍が実行されます。次のメソッドを使用してオブジェクトpako.inflate()を解凍できます。uint8Array
const inflatedArray = pako.inflate(uint8Array);

使用する前に必ずpakoプロジェクトにライブラリを含めてください。

上記の手順が完了すると、inflatedArray解凍されたバイト配列データが含まれます。

おすすめ

転載: blog.csdn.net/gao511147456/article/details/132019991