uni-app支付宝端彻底禁掉下拉刷新效果

前情

uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验也挺棒的,公司项目就是主推uni-app,解决了公司一套代码发布快抖微支四端的需求

坑位

按我以往开发快抖微小程序的开发经验,我只要在page.json关闭下拉刷新,这样就可以关掉页面的下拉刷新同时页面不会有向下拉拽效果

erlang 复制代码
"pages": [
    ...
    {
      "path" : "/pages/OrderList/OrderList",
      "style" :
      {
        "navigationBarTitleText" : "订单列表",
            "enablePullDownRefresh": false,
      }
    }
    ...
]

但是实际上支付宝端还是有下拉效果,只是不会触发onPullDownRefresh生命钩子,其实此时已经关掉了下拉刷新,只是这效果容易让人误解,详见下图:

解决方案

方案1:通过pages.json配置关掉支付宝小程序的允许向下拉拽

选通过"enablePullDownRefresh": false禁掉下拉刷新效果,我们再针对支付宝做特殊配置,通过"allowsBounceVertical": "NO"禁用支付宝的向下拉拽效果,此处使用了uni-app的条件编译来实现对支付宝的特有配置,关键配置如下:

json 复制代码
"pages": [
    ...
    {
      "path" : "/pages/OrderList/OrderList",
      "style" :
      {
        "navigationBarTitleText" : "订单列表",
            "enablePullDownRefresh": false,
            // #ifdef MP-ALIPAY
            "allowsBounceVertical": "NO"
            // #endif
      }
    }
    ...
]

注:allowsBounceVertical 配置不是true和false,它对应的是YES(开启下拉)和NO(关闭下拉)

方案2:通过API关掉支付宝小程序的允许向下拉拽

下拉刷新效果通过pages.json下的"enablePullDownRefresh": false禁用,至于向下拉拽效果支付宝不但提供了通过pages.json配置关掉它,同时也提供了API来控制它,此处同样使用了uni-app的条件编译来实现对支付宝的单独调用一些特有的API,关键代码如下:

erlang 复制代码
"pages": [
    ...
    {
      "path" : "/pages/OrderList/OrderList",
      "style" :
      {
        "navigationBarTitleText" : "订单列表",
            "enablePullDownRefresh": false
      }
    }
    ...
]
php 复制代码
// #ifdef MP-ALIPAY
my.setCanPullDown({
  canPullDown: true,
})
// #endif

思考

此文主要是讲解怎么禁用下拉刷新,举一反三,如果你页面要实现下拉刷新效果,只需要增加如下配置即可,因为支付宝小程序的allowsBounceVertical 默认为YES

erlang 复制代码
"pages": [
    ...
    {
      "path" : "/pages/OrderList/OrderList",
      "style" :
      {
        "navigationBarTitleText" : "订单列表",
            "enablePullDownRefresh": false
      }
    }
    ...
]

uni-app是多端框架,但是它并没有抹平所有端的效果,对于遇到一端可以一端不行的问题,我们可以去对应小程序官网文挡查阅特有的配置,再使用条件编译来手动抹平各端的差异,uni-app的条件编辑就是解决各端差异的最有效手段,我感觉这是uni-app向跨端开发者提供的杀手锏

相关推荐
摆烂工程师14 分钟前
今天 Cloudflare 全球事故,连 GPT 和你的网站都一起“掉线”了
前端·后端·程序员
拉不动的猪17 分钟前
一文搞懂:localhost和局域网 IP 的核心区别与使用场景
前端·javascript·面试
亿元程序员44 分钟前
你支持游戏内显示电量、信号或时间吗?
前端
阿珊和她的猫1 小时前
HTTP:Web 世界的基石协议详解
前端·网络协议·http
未来之窗软件服务1 小时前
自建开发工具IDE(二)文件托拽读取——东方仙盟炼气期
开发语言·前端·javascript·仙盟创梦ide·东方仙盟
conkl1 小时前
构建健壮的前端请求体系:从 HTTP 状态码到 Axios 实战
前端·网络协议·http
g***B7381 小时前
前端组件设计模式,复用与扩展
前端·设计模式
chxii1 小时前
第六章:MySQL DQL 表之间的关系 自连接 一对一、一对多、多对一、多对多
java·前端·mysql
U***49832 小时前
前端性能优化插件,图片压缩与WebP转换
前端
c***V3232 小时前
前端构建工具发展,esbuild与swc性能
前端