关于通过二维码打开微信小程序

微信小程序不但可以通过扫描专门的微信小程序二维码打开,而且还可以配置通过普通链接二维码打开,同时还可以向小程序传递参数

# 扫普通链接二维码打开小程序

需要登录小程序后台,进入 设置 -> 开发设置 -> 扫普通链接二维码打开小程序,开启功能参考说明即可配置二维码规则

发布后通过微信扫一扫扫描所有符合匹配规则的二维码,将跳转至指定的小程序页面

二维码中包含参数可以在小程序中获取

# 通过小程序码传参

可以通过调用服务端接口 (opens new window)传入 scene,打开小程序时可以获取其值

# 获取参数

在小程序的 onLaunchonLoad 生命周期中,可以获取传递的参数

TIP

由于 onLaunch 仅在小程序初始化执行,如果仅在 onLaunch 获取参数。当小程序处于后台时,扫描不同的二维码再次打开小程序时,不会触发 onLaunch 将无法获取新的参数。所以最好在打开页面的 onLoad 生命周期中获取参数

// app.js
App({
  onLaunch(options) {
    if (options.query.scene) {
      console.log('微信二维码', decodeURIComponent(options.query.scene))
    }
    if (options.query.q) {
      console.log('普通二维码', decodeURIComponent(options.query.q))
    }
  }
})
Page({
  onLoad(options) {
    if (options.scene) {
      console.log('微信二维码', decodeURIComponent(options.scene))
    }
    if (options.q) {
      console.log('普通二维码', decodeURIComponent(options.q))
    }
  }
})

普通二维码将获取到二维码的原始信息,小程序二维码将获得scene值,获取到参数就可以进行相关逻辑处理了

# 分享传参 (附带)

最近发现直接在 onShareAppMessage 的 link 后加上参数,在小程序的页面直接就可以获取参数

page({
  onLoad(options) {
    console.log('options: ', options)
    wx.showShareMenu({
      withShareTicket: true
    })
  },
  onShareAppMessage() {
    return {
      title: '分享测试',
      path: 'pages/index/index?id=1&type=0'
    }
  },
})

TIP

安卓与IOS测试通过,微信开发者工具无法打开链接

如果需要,可以通过兼容处理

App({
  onLaunch(option) {
    if (option.path.includes('?')) {
      wx.reLaunch({
        url: option.path
      })
    }
  }
})
小米5 PixelExperience 体验

小米5 PixelExperience 体验

突然发现 PixelExperience 这个 ROM 包,花了些时间刷机体验下,用起来比 MIUI 好很多 漂亮、流畅、没有注入广告。最重要的就是可以最大幅度的体验安卓原生的系统

toLocaleString 的使用

toLocaleString 的使用

使用 toLocaleString 来国际化日期或者数字格式