scanCode.js 2.7 KB
// middlePage/scanCode/scanCode.js
// 小程序扫码中间页
Page({
  data: {},

  onLoad(options) {
    // latitude=34.80829&longitude=118.05272&openId=ozn1a5I4Ie_Bv3gITzMPgcowEFOU&q=HTTP://AAX6.CN/JY/DT5I+67$R$:I$70-SJ2J&bgImage=https%3A%2F%2Fucode-cdn.aax6.cn%2Ffront-end%2Fproject%2Fjunyao%2Fminiprogram%2Fbg.png&contentImage=https%3A%2F%2Fucode-cdn.aax6.cn%2Ffront-end%2Fproject%2Fjunyao%2Fminiprogram%2Ftip_scancode.png&btnAgree=https%3A%2F%2Fucode-cdn.aax6.cn%2Ffront-end%2Fproject%2Fjunyao%2Fminiprogram%2Fbtn_scan.png&path=https%3A%2F%2Fucode-test-cdn.aax6.cn%2Ffront-end%2Fproject%2Fjunyao%2FjunyaoH5%2Findex.html%23%2Fhome&title=%E5%91%B3%E5%8A%A8%E5%8A%9B
    // let opt = {
    //   latitude: '34.80829',
    //   longitude: '118.05272',
    //   openId: 'ozn1a5I4Ie_Bv3gITzMPgcowEFOU',
    //   q: 'HTTP://AAX6.CN/JY/DT5I+67$R$:I$70-SJ2J',
    //   bgImage: 'https%3A%2F%2Fucode-cdn.aax6.cn%2Ffront-end%2Fproject%2Fjunyao%2Fminiprogram%2Fbg.png',
    //   contentImage: 'https%3A%2F%2Fucode-cdn.aax6.cn%2Ffront-end%2Fproject%2Fjunyao%2Fminiprogram%2Ftip_scancode.png',
    //   btnAgree: 'https%3A%2F%2Fucode-cdn.aax6.cn%2Ffront-end%2Fproject%2Fjunyao%2Fminiprogram%2Fbtn_scan.png',
    //   path: 'https%3A%2F%2Fucode-test-cdn.aax6.cn%2Ffront-end%2Fproject%2Fjunyao%2FjunyaoH5%2Findex.html%23%2Fhome',
    //   title: '%E5%91%B3%E5%8A%A8%E5%8A%9B',
    // };
    // options = opt;

    let decodeOptions = {};

    Object.keys(options).map((item) => {
      decodeOptions[item] = decodeURIComponent(options[item]);
    });

    const { bgImage, contentImage, btnAgree, path, title, q, ...others } = decodeOptions;
    this.setData({ bgImage, contentImage, btnAgree, path, title });

    this.options = others; // 逻辑参数

    // 设置页面title
    wx.setNavigationBarTitle({
      title,
      success: (result) => {},
      fail: () => {},
      complete: () => {},
    });
  },

  onShow() {},
  async getLoginCode() {
    return new Promise((resolve, reject) => {
      wx.login({
        success: (result) => {
          console.log(result, '---result');
          resolve(result.code);
        },
        fail: () => {
          reject(false);
        },
        complete: () => {},
      });
    });
  },

  // 打开扫码
  scanCode() {
    wx.scanCode({
      success: async (res) => {
        const code = await this.getLoginCode();
        let query = `code=${code}&q=${res.result}&scanCode=true`;

        if (this.options) {
          Object.keys(this.options).map((v) => {
            if (!query.includes(`${v}=`)) query += `&${v}=${this.options[v]}`;
          });
        }
        const webUrl = `${this.data.path}?${query}`;
        console.error('webUrl', webUrl);

        this.setData({ webUrl });
      },
    });
  },

  onShareAppMessage() {},
});