uniapp微信小程序获取页面二维码(带有参数)

1. 生成页面二维码(后端生成,前端需要将二维码写入文件管理器)

// 获取带参数的小程序码
  async function getCodeImage() {
    
    
	let param = {
    
     id: 12345 };   
    let page = 'pages/index';
    //getCodeBase64:调取后端接口,把参数和页面路径给后端
    const codeBase64 = await getCodeBase64({
    
    
      //扫描二维码后要跳到的那个页面的需要的参数
      param,
      //扫码二维码要跳到的页面的路径
      page,
    });
    // const codeImgPath = `${wx.env.USER_DATA_PATH}/wxacode.png`;
    const codeImgPath = `${
      
      wx.env.USER_DATA_PATH}/${
      
      param.id}.png`;
	const getUrl = await getImageUrl(codeImgPath, codeBase64);
	//二维码路径(可以用canvas画在海报里面)
    return getUrl;   
  }
async function getImageUrl(codeImgPath, codeBase64) {
    
    
  return new Promise((resolve) => {
    
    
	//获取全局唯一的文件管理器
    const fs = wx.getFileSystemManager();
	//写文件
    fs.writeFile({
    
    
      filePath: codeImgPath,
      data: codeBase64,
      encoding: 'base64',
      success: (res) => {
    
    
        resolve(codeImgPath);
      },
    })
  });
}

2. 扫描二维码后跳转的页面如何拿二维码参数

onMounted(() => {
    
    
	//小程序扫描二维码之后会把页面参数赋到scene中,所以获取页面参数scene
	//获取页面参数方法getLocationParams请看下方备注链接
    const scene = getLocationParams('scene');
    
    // 小程序码跳转过来
    if (scene) {
    
    
    	console.log(scene);
    	//拿到页面参数,调取页面接口,渲染页面
    }
  });

备注:获取页面参数方法getLocationParams链接:https://blog.csdn.net/honeymoon_/article/details/124130295

猜你喜欢

转载自blog.csdn.net/honeymoon_/article/details/125315792