解决wx.previewImage iOS 13.4预览base

2020-04-24  本文已影响0人  lechenging

思路:把base64存为本地图片,然后预览本地图片的url
下面是代码:
base64src.js 文件

const FILE_BASE_NAME = 'tmp_base64src'; //自定义文件名

function base64src(base64data, cb) {
  const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64data) || [];
  if (!format) {
    return (new Error('ERROR_BASE64SRC_PARSE'));
  }
  const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}.${format}`;
  const buffer = wx.base64ToArrayBuffer(bodyData);
  const fsm = wx.getFileSystemManager();
  fsm.writeFile({
    filePath,
    data: buffer,
    encoding: 'binary',
    success() {
      cb(filePath);
    },
    fail() {
      return (new Error('ERROR_BASE64SRC_WRITE'));
    },
  });
};

export { base64src };

调用

base64src(base64, res => {
      console.log(res) // 返回图片地址,直接赋值到image标签即可
      wx.previewImage({
        current: res, 
        urls: [res]
      })
    });

参考:https://www.jianshu.com/p/95fd7ede9f35

上一篇下一篇

猜你喜欢

热点阅读