微信公众号开发

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

本文主要是介绍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("

	
这篇关于Taro小程序生成二维码保存本地的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!