百度智能小程序 頁面事件處理函數(shù)

2020-09-03 16:12 更新

onPullDownRefresh

解釋:在 Page 中定義 onPullDownRefresh 處理函數(shù),監(jiān)聽該頁面用戶下拉刷新事件。

代碼示例 

在開發(fā)者工具中打開
// page.js
Page({
    onPullDownRefresh() {
        // do something
    }
});

說明:

  • 需要在app.json的window選項中開啟 enablePullDownRefresh;
  • 如果需要單個頁面支持下拉刷新,可以直接在頁面目錄下的 json 配置文件中開啟 enablePullDownRefresh;
  • 當處理完數(shù)據(jù)刷新后,swan.stopPullDownRefresh 可以停止當前頁面的下拉刷新。

onReachBottom

解釋:在Page中定義 onReachBottom 處理函數(shù),監(jiān)聽該頁面用戶上拉觸底事件。

代碼示例 

在開發(fā)者工具中打開
// page.js
Page({
    onReachBottom(e) {
        console.log('onReachBottom')
        // 常見的業(yè)務場景是開發(fā)者在這里請求分頁數(shù)據(jù)
    }
});

說明:

  • 可以在 app.json 的 window 選項中或頁面配置中設置觸發(fā)距離 onReachBottomDistance 。
  • 在觸發(fā)距離內滑動期間,該事件只會被觸發(fā)一次。

onPageScroll

解釋:在 Page 中定義 onPageScroll 處理函數(shù),監(jiān)聽用戶滑動頁面事件。方法參數(shù):Object objectObject 參數(shù)說明:

字段 類型 說明
scrollTop Number 頁面在垂直方向已滾動的距離(單位 px)

代碼示例 

在開發(fā)者工具中打開
// page.js
Page({
    onPageScroll(e) {
        console.log(e)
    }
});

注意:

  • 請在需要的時候定義此方法,以減少不必要的事件派發(fā)對渲染層-邏輯層通信造成影響;
  • 請避免在 onPageScroll 中過于頻繁的執(zhí)行 setData 等引起邏輯層-渲染層通信的操作(尤其是每次傳輸大量數(shù)據(jù)的時候)。

onShareAppMessage

解釋:在 Page 中定義 onShareAppMessage 函數(shù),設置該頁面的分享信息。

  • 用戶點擊頁面內的"分享"按鈕(button 組件 open-type="share")或者頁面右上角菜單的"分享"按鈕的時候會調用;
  • 此事件需要 return 一個Object,用于自定義分享內容。

Web 態(tài)說明:Web 態(tài)下,由于暫不支持分享,該方法不生效。

百度 APP 中掃碼體驗:



方法參數(shù):Object objectObject 

參數(shù)說明:

參數(shù)名 類型 必填 默認值 說明
from String 分享事件來源。button:頁面內轉發(fā)按鈕;menu:右上角分享菜單 。
target Object 如果 from 值是 button,則 target 是觸發(fā)這次轉發(fā)事件的 button,否則為 undefined。

自定義分享字段:

參數(shù)名 類型 必填 說明
title String 分享標題
content String 分享內容
imageUrl String 分享圖標
path String 頁面 path,必須是以 / 開頭的完整路徑。路徑中的參數(shù)須通過 encodeURIComponent 進行編碼。
success Function 接口調用成功的回調函數(shù)
fail Function 接口調用失敗的回調函數(shù)
complete Function 接口調用結束的回調函數(shù)(調用成功、失敗都會執(zhí)行)

代碼示例 

在開發(fā)者工具中打開

場景一:分享頁面為 tab 頁

Page({
    data: {
        title: '全球實時財經(jīng)行情'//推薦設置為具有小程序特色的標題  
    },
    onShareAppMessage() {
        return {
            title: this.data.title,
            content: '世界很復雜,百度更懂你——小程序簡介或詳細描述',//推薦設置為小程序簡介或描述  
            imageUrl: 'https://b.bdstatic.com/miniapp/images/bgt_icon.png',
            path: '/index/index',
            success(res) {
                // 分享成功
            },
            fail(err) {
                // 分享失敗
            }
        };
    }
});

場景二:分享頁面為詳情落地頁

Page({
    data: {
        // 實際應用中動態(tài)獲取
        title: '美的集團(000333)',//推薦設置為詳情頁title
        price: '58.2',
        quoteChange: '+1.3%',
        id: '000333'
    },

    onLoad(res) {
        swan.setNavigationBarTitle({
            title: this.data.title
        })
    },

    onShareAppMessage(res) {
        return {
            title: this.data.title + ' 最新報價' + this.data.price,
            content: '更精簡的股票小程序——股票精靈,快來查看熱門股票吧',//推薦設置為詳情頁簡介
            imageUrl: 'https://b.bdstatic.com/miniapp/images/bgt_icon.png',
            path: `/stockDetail/stockDetail?id=${this.data.id}`
        }
    }
});

場景三:分享頁面為資訊落地頁

Page({
    data: {
        title: '瑞信:予美團“跑贏大市”評級',//推薦設置為文章標題
        content: [
            // 第一自然段
            '瑞信發(fā)布報告稱,美團(03690)第三季外送業(yè)務同比增長約36%,加上盈利能力的持續(xù)改善,期內季績將強勁增長,預計全年收入可同比增長38%至264億元人民幣,非國際財務報告準則凈收益或達4.78億元人民幣。',
            // 第二自然段
            '該行稱,盡管受季節(jié)性因素影響,第四季成本及補貼費用可能會較高,但預期業(yè)務正在穩(wěn)步發(fā)展,期內訂單量強勁增長或有助部分抵消季節(jié)性負面影響,相信今年全年可實現(xiàn)收支平衡,上調2019年盈利預測,調整后凈利潤達11億元人民幣。'
        ]//推薦設置為文章第一段
    },
    onLoad(options) {
        this.data.id = options.id || '';
    },
    onShareAppMessage() {
        return {
            title: this.data.title,
            content: this.data.content[0],
            imageUrl: 'https://b.bdstatic.com/miniapp/images/bgt_icon.png',
            path: '/article/article?id=${this.data.id}',
        };
    }
});

Tips:

Page 中沒有定義 onShareAppMessage 函數(shù)也可以正常調起分享功能,分享數(shù)據(jù)會優(yōu)先使用 setPageInfo 中設置的頁面標題和描述信息,其次使用小程序標題、小程序簡介、小程序頭像,再其次會使用默認智能小程序文案作為兜底,所以推薦開發(fā)者優(yōu)先使用 setPageInfo 完善頁面信息。

分享渠道及字段說明圖示

動態(tài)及微信好友示例 朋友圈及QQ好友示例 QQ空間及百度Hi示例 新浪微博及截屏分享示例 系統(tǒng)分享示例

onTabItemTap

解釋:點擊 tab 時觸發(fā)。

方法參數(shù):Object object

Object 參數(shù)說明:

參數(shù)名 類型 說明 最低版本
index String 被點擊 tabItem 的序號,從 0 開始 3.0.2swan.setURLQuery
pagePath String 被點擊 tabItem 的頁面路徑 3.0.2
text String 被點擊 tabItem 的按鈕文字 3.0.2

代碼示例 

在開發(fā)者工具中打開

// tab.js
Page({
    onTabItemTap(item) {
        console.log(item.index);
        console.log(item.pagePath);
        console.log(item.text);
    }
});

onURLQueryChange

解釋:在 Page 中定義 onURLQueryChange 處理函數(shù),監(jiān)聽頁面 URL query 改變。引起頁面 URL query 更新的原因有:調用 swan.setURLQuery 。

方法參數(shù):Object object

Object 參數(shù)說明:

字段 類型 說明
newURLQuery Object 改變后的 URL query
oldURLQuery Object 改變前的 URL query

代碼示例 

在開發(fā)者工具中打開

Page({
    onURLQueryChange({newURLQuery, oldURLQuery}) {
        console.log(newURLQuery, oldURLQuery) //  輸出結果為 {channel: 'movie'} {}
    },
    onLoad(query) {
        if(!query.channel) {
            swan.setURLQuery({channel: 'movie'})
        }
    }
})


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號