前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序知识点总结-1

微信小程序知识点总结-1

作者头像
用户9914333
发布2023-09-06 13:17:41
1980
发布2023-09-06 13:17:41
举报
文章被收录于专栏:bug收集bug收集

bug收集:专门解决与收集bug的网站 背景:

最近,在做微信小程序,将一些知识点汇总如下:

(ps: 之后,还会继续更新)

1. 自定义导航

如下图:

1.1 窗口配置

页面json文件中,加如下配置

代码语言:javascript
复制
  "navigationStyle": "custom"   //自定义导航

1.2 关于微信小程序自定义导航栏时,如何获取手机状态栏和导航栏高度

https://www.yii666.com/blog/360110.html

代码语言:javascript
复制
  let res = wx.getSystemInfoSync();
  let statusHeight = res.statusBarHeight;

// 注意:此时获取到的值的单位为 'px'

2. 返回上一页

代码语言:javascript
复制
<button bindtap="navigateBack">返回上一页</button>
 navigateBack: function () {
    wx.navigateBack({
      delta: 1, // 返回的页面数,1表示返回上一级页面
      success: function(res) {
        console.log("返回成功");
      },
      fail: function(res) {
        console.log("返回失败");
      },
      complete: function(res) {
        console.log("返回完成");
      }
    })
  }

3. 微信小程序设置页面高度为屏幕高度的方法

方法1:

代码语言:javascript
复制
 .page{
 height:100vh;
 }

方法2 :

代码语言:javascript
复制
 <view class="container" style="height: {{containerHeight}}px"></view>
 Page({
  data: {
    containerHeight: 0
  },
  onLoad() {
    wx.getSystemInfo({
      success: (res) => {
        this.setData({
          containerHeight: res.windowHeight
        })
      }
    })
  }
})

4. 原生的微信小程序实现判断用户左滑动与右滑动

代码语言:javascript
复制
<!-- index.wxml -->
<view class="container">
  <view class="box"
   bindtouchstart="touchStart"
   bindtouchend="touchEnd">
    向左滑动或向右滑动
  </view>
</view>
代码语言:javascript
复制
// index.js
Page({
  touchStart(e) {
    this.startX = e.changedTouches[0].pageX
    this.startY = e.changedTouches[0].pageY
  },
  touchEnd(e) {
    const endX = e.changedTouches[0].pageX
    const endY = e.changedTouches[0].pageY
    const deltaX = endX - this.startX
    const deltaY = endY - this.startY
    if (Math.abs(deltaX) > 20 && Math.abs(deltaY) < 50) { // 判断是否左右滑动
      if (deltaX > 0) {
        console.log('向右滑动')
      } else {
        console.log('向左滑动')
      }
    }
  }
})

5. 微信小程序中获取节点的方法(未测试)

具体的方法如下:

在要获取节点信息的页面中,

通过 this.createSelectorQuery() 方法创建一个选择器对象。

使用选择器对象的 select(selector) 方法

或 selectAll(selector) 方法来获取节点信息。

调用选择器对象的 boundingClientRect(callback) 方法

或 exec(callback) 方法来获取目标节点的信息,

其中 boundingClientRect 方法获取节点的位置和尺寸信息,

exec 方法可获取自定义属性、样式等信息。

代码语言:javascript
复制
<!-- index.wxml -->
<view class="container">
  <view id="box" class="box">我是一个盒子</view>
  <button bindtap="getNodeInfo">获取节点信息</button>
</view>
代码语言:javascript
复制
// index.js
Page({
  // 获取节点信息
  getNodeInfo() {
    const query = wx.createSelectorQuery()
    query.select('#box').boundingClientRect(rect => {
      console.log('节点信息:', rect)
    }).exec()
  }
})

6. 微信小程序 wx.switchTab 跳转页面,不刷新问题

解决方案:

代码语言:javascript
复制
wx.switchTab({
     url: '/pages/exam/exam',
     success:function () {
       var page = getCurrentPages().pop();
       if (page == undefined || page == null) return;
         page.onLoad();   //重新刷新页面
       }
   })

7. getphonenumber 获取手机号的方法个人小程序是不能获取手机号的,企业小程序账号可以

获取小程序账号的方法更新,只需要传 code 到后台即可.

注:getPhoneNumber 返回的 code 与 wx.login 返回的 code 作用是不一样的,不能混用

获取方法如下:

代码语言:javascript
复制
<button open-type="getPhoneNumber"
 bindgetphonenumber="getPhoneNumber">
  微信一键登录
 </button>
代码语言:javascript
复制
Page({
  getPhoneNumber (e) {
    console.log(e.detail.code) //将此code 传入后台服务器,获取电话
  }
})

8. 发布成体验版,进行测试

体验版测试,需要开发调试下,去测试;不会检查https

9. 微信小程序页面标题对齐设置

微信小程序页面标题,没有提供设置对齐的方式;

默认情况andriod 手机标题将左对齐,ios手机则是居中对齐

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 bug收集 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档