微信ウィジェットプロジェクトの画像をローカルに保存する方法

2112 ワード

まず、アルバムに保存された画像のapiを見てみましょう.
wx.saveImageToPhotosAlbum({
  filePath : "./test.png",   // , 
  success(res) {
    console.log("success");
  },
  fail : function(res) {
    console.log(res);
  }
})

上のsaveImageToPhotosAlbumの使い方ではファイルを取得できません.filePathは公式には一時ファイルパスまたは永久ファイルパスと呼ばれています.
一方、「file Path:./test.png」は相対パス(ウィジェットプロジェクトに対するパス)であり、一時ファイルパスまたは永続ファイルパスが必要です.
3つの違いを説明します.
相対パス:ウィジェットプロジェクト内の相対ファイルパス.
≪一時ファイル・パス|Temporary File Path|emdw≫:ネットワークからダウンロードまたは他の形式で生成されたファイルですが、メモリにのみ保存され、ウィジェット・ディレクトリに保存されていないファイル・パスです.
永続ファイルパス:ウィジェットプロジェクト内のファイル内の全ファイルパス.
注意:相対パスと永続ファイルパスは同じファイルである可能性がありますが、参照するパス名が異なるだけです(1つは相対的で、1つは絶対的です).
一時ファイルパスは、アルバムにファイルを保存するために使用できます.
wx.downloadFile({
  url: 'https://example.com/audio/123',     // , 
  success: function (res) {
    //  ,  success  , 
    if (res.statusCode === 200) {
      wx.saveImageToPhotosAlbum({
        filePath: res.tempFilePath,
        success(res) {
          wx.showToast({
            title: ' !',
          })
        },
        fail(res) {
          wx.showToast({
            title: ' !',
          })
        }
      })
    }
  }
})

downloadFileではネットワーク上の画像リソースしか取得できません.getImageInfoは、ネットワーク上のピクチャリソースでも、ウィジェットに保存されているピクチャでも、全能タイプです.
公式にはgetImageInfoのsrcパラメータのピクチャパスは、相対パス、一時ファイルパス、記憶ファイルパス(すなわち、上述した全パス)、ネットワークピクチャパスであってもよい.
wx.downloadFile({
  url: 'https://example.com/audio/123',     // , 
  success: function (res) {
    //  ,  success  , 
    if (res.statusCode === 200) {
      wx.saveImageToPhotosAlbum({
        filePath: res.tempFilePath,
        success(res) {
          wx.showToast({
            title: ' !',
          })
        },
        fail(res) {
          wx.showToast({
            title: ' !',
          })
        }
      })
    }
  }
})

まとめ:
wx.getImageInfo機能はより強力です.しかし、downloadFileはダウンロードの進捗などの機能を読み取ることができるため、より専門的です.
プラットフォームフレームワークuni-appは、マイクロ信ウィジェットに基づいている.
原文:https://blog.csdn.net/u013654125/article/details/80500306