百度智能小程序 監(jiān)聽小程序要打開的頁面不存在事件

2020-09-04 16:28 更新

swan.onPageNotFound

基礎(chǔ)庫 3.60.2 開始支持,低版本需做兼容處理。

解釋: 監(jiān)聽小程序要打開的頁面不存在事件。該事件與 App.onPageNotFound 的回調(diào)時(shí)機(jī)一致。

方法參數(shù)

Function callback

小程序要打開的頁面不存在的事件回調(diào)函數(shù)。

callback 返回參數(shù)說明

屬性 類型 說明

path

string

不存在頁面的路徑

query

Object

打開不存在頁面的 query 參數(shù)

isEntryPage

boolean

是否本次啟動(dòng)的首個(gè)頁面(例如從分享等入口進(jìn)來,首個(gè)頁面是開發(fā)者配置的分享頁面)


示例


圖片示例


代碼示例 1: 在生命周期的 onPageNotFound 中使用 

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

// app.js
App({
    onLaunch() {},
    onPageNotFound(res) {
        console.log(res);
        swan.showModal({
            title: '',
            content: JSON.stringify(res)
        });
        // 頁面不存在時(shí),默認(rèn)跳轉(zhuǎn)到首頁,如果是 tabbar 頁面,請(qǐng)使用 swan.switchTab 進(jìn)行跳轉(zhuǎn)
        swan.navigateTo({
            url: '/home/home'
        });
    }
});

代碼示例 2:等同于示例一的另一種寫法 

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

// app.js
App({
    onLaunch() {
        swan.onPageNotFound(function(res) {
            console.log(res);
            swan.showModal({
                title: '',
                content: JSON.stringify(res)
            });
            // 頁面不存在時(shí),默認(rèn)跳轉(zhuǎn)到首頁,如果是 tabbar 頁面,請(qǐng)使用 swan.switchTab 進(jìn)行跳轉(zhuǎn)
            swan.navigateTo({
                url: '/home/home'
            });
        });
    }
});

代碼示例 3:可根據(jù)開發(fā)者的業(yè)務(wù)邏輯調(diào)整用法 

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


Page({
    data: {},
    onTap() {
        swan.onPageNotFound(function(res) {
            console.log('onPageNotFound success',res);
            swan.showModal({
                title: '',
                content: JSON.stringify(res)
            });
            // 頁面不存在時(shí),默認(rèn)跳轉(zhuǎn)到首頁,如果是 tabbar 頁面,請(qǐng)使用 swan.switchTab 進(jìn)行跳轉(zhuǎn)
            swan.navigateTo({
                url: '/home/home',
                success: res => {
                    console.log('navigateTo success');
                },
                fail: err => {
                    console.log('navigateTo fail');
                },
                complete() {
                    swan.offPageNotFound();
                }
            });
        });
        swan.navigateTo({
            url: '/path/to/otherPage'
        });
    }
})


Bug & Tip

  • 開發(fā)者可以在回調(diào)中進(jìn)行頁面重定向。
  • 在除了 App.js 的其他時(shí)機(jī)中調(diào)用 swan.onPageNotFound 的話,需要用 swan.offPageNotFound 取消監(jiān)聽,否則會(huì)出現(xiàn)監(jiān)聽多次的情況


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)