微信小程序开发中的代码片段总结

本文总结了微信小程序开发中的关键代码片段,包括授权逻辑、网络请求与拦截器、录音处理、图像处理、mpvue的使用、分包预加载、全局变量、SVG图标尺寸处理以及解决组件绑定class的问题。此外,还提到了使用Fundebug进行实时BUG监控。
摘要由CSDN通过智能技术生成

小编推荐:Fundebug专注于JavaScript、微信小程序、微信小游戏,Node.js和Java实时BUG监控。真的是一个很好用的bug监控费服务,众多大佬公司都在使用。

经过一段时间的微信小程序开发,总结了一些代码片段,主要是以下几个方面:

  • 小程序(授权、网络、录音、图像)
  • mpvue(分包、全局变量、svg组件、组件class绑定)

小程序

授权逻辑

  1. 初次请求 -> 请求用户授权 -> 同意授权(-> 不同意授权 -> 结束) -> 使用对应功能
  2. 二次请求 -> 跳转小程序设置页面modal -> 设置页面 -> 开启scope -> 使用对应功能
const checkPermission = scope =>
  new Promise((resolve, reject) => {
    wx.getSetting({
      success: res => {
        // 是否存在认证配置
        let hasAuthorized = res.authSetting.hasOwnProperty(scope)
        if (hasAuthorized) {
          // 已授权
          if (res.authSetting[scope]) {
            resolve('已授权')
            return
          }
          // 未授权,提示进入小程序设置页面,wx限制:需要主动点击才能执行openSetting(),因此使用modal
          wx.showModal({
            title: '没有权限',
            content: '体验该功能需要您授权功能权限,现在前往设置开启',
            success: res => {
              if (res.confirm) {
                reject('设置页面')
                wx.openSetting()
              } else if (res.cancel) {
                reject('不进入设置')
              }
            }
          })
        }
      },
      fail: err => { reject(err.errMsg) }
    })
  })

网络

微信小程序不同环境下网络请求的不同之处:

校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书

网络请求与拦截器

可以使用 fly.js 作为小程序的网络请求库,在使用拦截器等功能时也较为方便。

小程序中一个特殊的地方是: content-type 为 multipart/formdata 类型的POST请求不能通过自定义请求的方式发出,需要使用小程序的 wx.uploadFile 方法,可以如下简单封装下:

const formDataRequest = (url, filePath, params = {}) =>
  new Promise((resolve, reject) => {
    let token = wx.getStorageSync("token")
    wx.uploadFile({
      url,
      filePath,
      name: "file",
      header: { token },
      formData: params,
      success: async res => {
        // 一些对响应数据的处理...
        resolve(res.data)
      },
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值