Taro小程序生成二维码保存本地

步骤 生成二维码 - 获取二维码的base64 - 获取权限 - 获得地址 – 保存

import { QRCode } from "taro-code";

const ref = useRef<any>();

 <TView ref={ref}>
  <QRCode
    text='world'
    size={200}
    scale={4}
    errorCorrectLevel='M'
    typeNumber={2}
  />
</TView>

在外面加一层View 是为了获取taro-code生成的image 从而获得src 也就是base64格式的二维码图片

处理权限相关操作

import {
  getSetting,
  authorize,
  saveImageToPhotosAlbum,
  getFileSystemManager,
  env,
} from "@tarojs/taro";

const handleSaveCode = useCallback(() => {
 getSetting({
   success: function ({ authSetting }) {
     //没有权限则申请
     if (!authSetting["scope.writePhotosAlbum"]) {
       authorize({
         scope: "scope.writePhotosAlbum",
         success: () => {
           //存储二维码
           handleWriteFile();
         },
       });
     } else handleWriteFile();
   },
 });
}, []);

handleWriteFile
存储本地逻辑


  const handleWriteFile = useCallback(() => {
    const { src } = ref.current.childNodes[0].props;
    const data = src.split(",")[1];
    const filePath = `${env.USER_DATA_PATH}/${Date.now()}.png`;
    const { writeFile } = getFileSystemManager();
    // 写入 获得文件路径
    writeFile({
      data,
      filePath,
      encoding: "base64",
      success: () => {
      //存入相册
        saveImageToPhotosAlbum({
          filePath,
          success: () => {
            console.log("
上一篇:二十三.浏览器的强制缓存与服务器的自动启动


下一篇:Excel模板导出之动态导出