小程序

371 阅读5分钟

微信小程序动态修改页面标题setNavigationBarTitle

静态 如data.json

{
    "navigationBarTitleText": "案例详情"
}

动态 如

wx.setNavigationBarTitle({
    title: "案例详情"
})

小程序右上角分享禁用和显示

显示
wx.showShareMenu({
  withShareTicket: true,
  menus: ['shareAppMessage', 'shareTimeline']
})
禁用
wx.hideShareMenu({
  menus: ['shareAppMessage', 'shareTimeline']
})

注意

"shareAppMessage"表示“发送给朋友”按钮,"shareTimeline"表示“分享到朋友圈”按钮

显示“分享到朋友圈”按钮时必须同时显示“发送给朋友”按钮,显示“发送给朋友”按钮时则允许不显示“分享到朋友圈”按钮

微信小程序实现局部下拉刷新

注意 1.使用了scroll-view,是无法触发onPullDownRefresh的。

2.配置文件中的"enablePullDownRefresh": true 是整体下拉,不能实现局部下拉。

<scroll-view  
    class="order_card scroll_view"
    scroll-y="true" 
    bindrefresherrefresh="bindDownLoad" // 下拉刷新回调
    refresher-triggered = "{{isLoading}}" // 下拉刷新状态
    refresher-enabled="{{true}}" // 开启下拉刷新
    refresher-threshold="{{80}}" // 触发下拉刷新阈值
    refresher-background="#999999"  // 下拉刷新背景颜色
    >
</scroll-view>
Page({
  data: {
    isLoading: false
  },
  bindDownLoad: function () {
    setTimeout(()=>{
      this.setData({
        isLoading:false
      })
      this.searchOrder() // 下拉刷新触发的事件
    },2000)
  },
})

小程序整体下拉刷新,上拉加载

使用系统提供的onPullDownRefresh、onReachBottom这2个事件,前提需要在app.json或page.json配置文件中设置,才能使用。app.json是全应用的页面都可以使用该事件,page.json则只是对应的页面才可以使用。 可以结合导航栏loading显示正在加载的效果

Page({
  data: {
    pageNum: 1,       // 设置加载的第几次,默认是第一次
    isFirstLoad: true,   // 用于判断List数组是不是空数组,默认true,空的数组
    hasMore: false,    // “加载更多”
  },
  // 下拉刷新
  onPullDownRefresh: function () {
    // 显示导航栏loading
    wx.showNavigationBarLoading();
    // 调用接口加载数据
    this.loadData();
    // 隐藏导航栏loading
    wx.hideNavigationBarLoading();
    // 当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新
    wx.stopPullDownRefresh();
  },
  // 上拉加载
  onReachBottom(e) {
    let that = this;
    if (that.data.hasMore) {
      that.setData({
        pageNum: that.data.pageNum + 1, // 每次触发上拉事件,把pageNum+1
        isFirstLoad: false // 触发到上拉事件,把isFirstLoad设为为false
      });
      that.loadData();
    }
  },
})

微信小程序自定义分享标题和图片

developers.weixin.qq.com/community/d…

微信小程序当中有两种分享的方式

1.按钮方式

<button open-type="share"></button>

2.右上方的"..."按钮分享

上面两种方式都是经过onShareAppMessage调用,主要有title、path、imageUrl三个参数,在path可以传递自定义的参数给被分享人,具体的代码如下

Page({
    onShareAppMessage(res) {
      /*const promise = new Promise(resolve => {
        setTimeout(() => {
          resolve({
            title: '自定义转发标题'
          })
        }, 2000)
      })*/
      if (res.from === 'button') { // 方式一
        return {
          title: '按钮方式的分享',
          path: '/page/user?id=123',
          imageUrl: 'https://qny.520pinche.com/icon/code.jpg'
        }
      } else if(res.from === 'menu') { // 方式二
        return {
          title: '右上方菜单的分享',
          path: '/page/user?id=123',
          imageUrl: 'https://qny.520pinche.com/icon/code.jpg'
        }
      }
      
    }
  })

微信小程序组件内分享

在组件内写button分享按钮:(加data-xxx来传参)

<button class="share" openType="share" data-title="标题" :data-img="imgpw"></button>

然后页面:

 // 自定义分享标题
onShareAppMessage(res) {
    if (res.from === 'button') {
        console.log(res.target.dataset)//可以查看组件传的参数
        return {
            title: "自定义标题",
            desc: "自定义描述",
            imageUrl: res.target.dataset.img, 
            path: 'page/index/index' //分享页面
        }
    }
}

注意:imageUrl无法自定义gif动图,支持png和jpg格式

中文转英文

www.cnblogs.com/3_mu/archiv…

微信小程序怎样创建formdata对象,并通过 wx.request 发送file文件

一、场景

1.业务需求,微信小程序需要选择本地的一张照片file,通过接口发送给服务器。

2.问题:

因涉及到域名安全问题,不能使用 wx.uploadFile 。
微信本身没有FormData对象,无法使用 new FormData
后端接口需要接收一个file, 所以只能想办法,通过wx.request 发送 multipart/form-data 请求

二、解决办法(使用方法)

blog.csdn.net/qq_45301392…

微信小程序页面跳转传多个参数

传递

wx.navigateTo({
    url:'/pages/index/index?obj='+JSON.stringify({a:1,b:2,c:3})
})

获取

接收的页面在onLoad生命周期的 options 参数获取,例如用 obj 携带的 json 参数,那么获取的方法就是

let params = JSON.parse(options.obj)

微信小程序实现图片上传和视频上传功能

blog.csdn.net/weixin_4459…

www.jb51.net/article/141…

blog.csdn.net/weixin_4226…

自定义组件使用全局样式

developers.weixin.qq.com/miniprogram…

image.png

微信小程序查看通讯录 联系人

addressBook() {//通讯录操作
    wx.chooseContact({
        success: function (res) {
            // console.log(res, ‘成功回调’)
        },
        fail(res) {
            // console.log(res, ‘错误回调’)
        },
        complete(res) {
            // console.log(res, ‘结束回调’)
        }
    })

}

提示:在真机调试才可以看见效果

微信小程序 四 组件的运用 组件的创建和引用、组件的样式、组件的数据与方法和属性、数据监听器(及他的案例)、纯数据字段、组件和组件所在页面的生命周期、插槽、父子组件之间同、behaviors

blog.csdn.net/m0_55170432…

小程序实现数据双向绑定

小程序中没有自带的数据双向绑定,但利用bindinput、bindchange也能实现数据双向绑定。 wxml

<input name="uname" bindinput="bindInput" type="text" placeholder="请输入用户名" data-item="uname" />

js

bindInput: function(e){
    let item=e.currentTarget.dataset.item; //在每个input绑定不同的item作为标识
    const user=this.data.user
    user[item]=e.detail.value //对象的属性名称是动态判定时,通过方括号标记访问
    this.setData({
      user
    })
}

微信小程序中如何修改数组指定元素(或对象)

blog.csdn.net/qq_37959401…

微信小程序如何跳转到tabbar页面

blog.csdn.net/wapqke/arti…

微信小程序 弹出层 禁止页面滚动的方法

1.场景

添加自定义的弹出框后,当滚动鼠标时下边的页面也会跟着滚动。

2.解决

为了在遮罩出现的时候禁止用户滑动页面,如下处理: 给这个遮罩层 绑定事件: 使用 catchtouchmove

(1)在弹出层上添加 catchtouchmove=’true’

<!--弹出框  -->
<view class="sh_Model_box" catchtouchmove='true'>
...
</view>

(2)也可以绑定有一个空事件

<view catchtouchmove="noneEnoughPeople">
    我是遮罩层
</view> 


function noneEnoughPeople(){
    console.log('啥也不干就行,空函数哈哈哈');
}

3.注意

开发工具的模拟器上没有效果,必须真机测试,真机上才有效果。

5种实现CSS底部固定的方法

blog.csdn.net/lpq1201/art…

微信小程序吸顶效果

blog.csdn.net/qq15577969/…

blog.csdn.net/qq_40419930…

微信小程序 boundingClientRect 获取元素节点位置

blog.csdn.net/baidu_35290…

微信小程序 组件数据传到页面

blog.csdn.net/yy6818/arti…

微信小程序 input双向绑定

blog.csdn.net/u013595395/…

微信小程序 picker 模式日期,设置默认当前时间

blog.csdn.net/qsj0606/art…