qrcode.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /**
  2. * 将 ArrayBuffer 转换为 Base64 图片
  3. * @param {ArrayBuffer} buffer - 图片的 ArrayBuffer 数据
  4. * @returns {string} Base64 图片字符串
  5. */
  6. export const arrayBufferToBase64 = (buffer) => {
  7. // 使用 uni-app 的 API 将 ArrayBuffer 转换为 Base64
  8. return uni.arrayBufferToBase64(buffer);
  9. }
  10. /**
  11. * 保存二维码到本地
  12. * @param {string} base64 - Base64 图片字符串
  13. */
  14. export const saveQRCodeToLocal = async (base64) => {
  15. try {
  16. // 将 Base64 转换为临时文件路径
  17. const fsm = uni.getFileSystemManager();
  18. const filePath = `${uni.env.USER_DATA_PATH}/qrcode_${Date.now()}.png`;
  19. // 写入文件
  20. fsm.writeFileSync(filePath, base64, 'base64');
  21. // 保存到相册
  22. await uni.saveImageToPhotosAlbum({
  23. filePath: filePath
  24. });
  25. uni.showToast({
  26. title: '保存成功',
  27. icon: 'success'
  28. });
  29. } catch (error) {
  30. console.error('保存二维码失败:', error);
  31. uni.showToast({
  32. title: '保存失败',
  33. icon: 'error'
  34. });
  35. }
  36. }