页面事件处理函数

onPullDownRefresh

解释:在 Page 中定义 onPullDownRefresh 处理函数,监听该页面用户下拉刷新事件。

代码示例

在开发者工具中打开

在开发者工具中打开

在 WEB IDE 中打开

  1. // page.js
  2. Page({
  3. onPullDownRefresh() {
  4. // do something
  5. }
  6. });

说明

  • 需要在app.jsonwindow选项中开启 enablePullDownRefresh
  • 如果需要单个页面支持下拉刷新,可以直接在页面目录下的 json 配置文件中开启enablePullDownRefresh
  • 当处理完数据刷新后,swan.stopPullDownRefresh可以停止当前页面的下拉刷新。

onReachBottom

解释:在Page中定义 onReachBottom 处理函数,监听该页面用户上拉触底事件。

代码示例

在开发者工具中打开

在开发者工具中打开

在 WEB IDE 中打开

  1. // page.js
  2. Page({
  3. onReachBottom(e) {
  4. console.log('onReachBottom');
  5. // 常见的业务场景是开发者在这里请求分页数据
  6. }
  7. });

说明

  • 可以在 app.json 的 window 选项中或页面配置中设置触发距离 onReachBottomDistance 。
  • 在触发距离内滑动期间,该事件只会被触发一次。

onPageScroll

解释:在 Page 中定义 onPageScroll 处理函数,监听用户滑动页面事件。
方法参数:Object object
Object 参数说明

字段类型说明
scrollTopNumber页面在垂直方向已滚动的距离(单位:px)

代码示例

在开发者工具中打开

在开发者工具中打开

在 WEB IDE 中打开

  1. // page.js
  2. Page({
  3. onPageScroll(e) {
  4. console.log(e);
  5. }
  6. });

注意

  • 请在需要的时候定义此方法,以减少不必要的事件派发对渲染层-逻辑层通信造成影响;
  • 请避免在 onPageScroll 中过于频繁的执行 setData 等引起逻辑层-渲染层通信的操作(尤其是每次传输大量数据的时候)。

onShareAppMessage

解释:在 Page 中定义 onShareAppMessage 函数,设置该页面的分享信息。

  • 用户点击页面内的”分享”按钮(button 组件 open-type=”share”)或者页面右上角菜单的”分享”按钮的时候会调用;
  • 此事件需要 return 一个Object,用于自定义分享内容。

百度 App 中扫码体验

扫码体验

代码示例

百度智能小程序

请使用百度APP扫码

方法参数:Object object
Object 参数说明

参数名类型必填默认值说明
fromString分享事件来源。button:页面内转发按钮;menu:右上角分享菜单 。
targetObject如果 from 值是 button,则 target 是触发这次转发事件的 button,否则为 undefined。

自定义分享字段

参数名类型必填说明
titleString分享标题
contentString分享内容
imageUrlString分享图标
pathString页面 path,必须是以 / 开头的完整路径。路径中的参数须通过 encodeURIComponent 进行编码。
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

代码示例

在开发者工具中打开

在开发者工具中打开

在 WEB IDE 中打开

场景一:分享页面为 tab 页

  1. Page({
  2. data: {
  3. //推荐设置为具有小程序特色的标题
  4. title: '全球实时财经行情'
  5. },
  6. onShareAppMessage() {
  7. return {
  8. title: this.data.title,
  9. //推荐设置为小程序简介或描述
  10. content: '世界很复杂,百度更懂你——小程序简介或详细描述',
  11. imageUrl: 'https://b.bdstatic.com/miniapp/images/bgt_icon.png',
  12. path: '/index/index',
  13. success(res) {
  14. // 分享成功
  15. },
  16. fail(err) {
  17. // 分享失败
  18. }
  19. };
  20. }
  21. });

场景二:分享页面为详情落地页

  1. Page({
  2. data: {
  3. // 实际应用中动态获取
  4. //推荐设置为详情页title
  5. title: '美的集团(000333)',
  6. price: '58.2',
  7. quoteChange: '+1.3%',
  8. id: '000333'
  9. },
  10. onLoad(res) {
  11. swan.setNavigationBarTitle({
  12. title: this.data.title
  13. });
  14. },
  15. onShareAppMessage(res) {
  16. return {
  17. title: this.data.title + ' 最新报价' + this.data.price,
  18. //推荐设置为详情页简介
  19. content: '更精简的股票小程序——股票精灵,快来查看热门股票吧',
  20. imageUrl: 'https://b.bdstatic.com/miniapp/images/bgt_icon.png',
  21. path: `/stockDetail/stockDetail?id=${this.data.id}`
  22. }
  23. }
  24. });

场景三:分享页面为资讯落地页

  1. Page({
  2. data: {
  3. //推荐设置为文章标题
  4. title: '瑞信:予美团“跑赢大市”评级',
  5. content: [
  6. // 第一自然段
  7. '瑞信发布报告称,美团(03690)第三季外送业务同比增长约36%,加上盈利能力的持续改善,期内季绩将强劲增长,预计全年收入可同比增长38%至264亿元人民币,非国际财务报告准则净收益或达4.78亿元人民币。',
  8. // 第二自然段
  9. '该行称,尽管受季节性因素影响,第四季成本及补贴费用可能会较高,但预期业务正在稳步发展,期内订单量强劲增长或有助部分抵消季节性负面影响,相信今年全年可实现收支平衡,上调2019年盈利预测,调整后净利润达11亿元人民币。'
  10. ]
  11. //推荐设置为文章第一段
  12. },
  13. onLoad(options) {
  14. this.data.id = options.id || '';
  15. },
  16. onShareAppMessage() {
  17. return {
  18. title: this.data.title,
  19. content: this.data.content[0],
  20. imageUrl: 'https://b.bdstatic.com/miniapp/images/bgt_icon.png',
  21. path: `/article/article?id=${this.data.id}`
  22. };
  23. }
  24. });

Tips
Page 中没有定义 onShareAppMessage 函数也可以正常调起分享功能,分享数据会优先使用 setPageInfo 中设置的页面标题和描述信息,其次使用小程序标题、小程序简介、小程序头像,再其次会使用默认智能小程序文案作为兜底,所以推荐开发者优先使用 setPageInfo 完善页面信息。

分享渠道及字段说明图示

动态及微信好友示例
朋友圈及QQ好友示例
QQ空间及百度Hi示例
新浪微博及截屏分享示例
系统分享示例

onTabItemTap

解释:点击 tab 时触发。
方法参数:Object object
Object 参数说明

参数名类型说明最低版本
indexString被点击 tabItem 的序号,从 0 开始3.0.2
pagePathString被点击 tabItem 的页面路径3.0.2
textString被点击 tabItem 的按钮文字3.0.2

代码示例

在开发者工具中打开

在开发者工具中打开

在 WEB IDE 中打开

  1. // tab.js
  2. Page({
  3. onTabItemTap(item) {
  4. console.log(item.index);
  5. console.log(item.pagePath);
  6. console.log(item.text);
  7. }
  8. });

onURLQueryChange

解释:在 Page 中定义 onURLQueryChange 处理函数,监听页面 URL query 改变。引起页面 URL query 更新的原因有:调用 swan.setURLQuery

方法参数:Object object

Object 参数说明

字段类型说明
newURLQueryObject改变后的 URL query
oldURLQueryObject改变前的 URL query

代码示例

在开发者工具中打开

在开发者工具中打开

在 WEB IDE 中打开

  1. Page({
  2. onURLQueryChange({newURLQuery, oldURLQuery}) {
  3. // 输出结果为 {channel: 'movie'} {}
  4. console.log(newURLQuery, oldURLQuery);
  5. },
  6. onLoad(query) {
  7. if (!query.channel) {
  8. swan.setURLQuery({channel: 'movie'});
  9. }
  10. }
  11. })