この記事は主に、マルチレベルページに戻るWeChatアプレットの実装方法に関する関連情報を紹介します。この記事が、このような機能を必要とする友人の実現に役立つことを願っています。
WeChatアプレットは複数のページを返します。レベルページのメソッド
WeChat アプレット開発では、前のページに戻ることは非常に一般的な操作であり、最も一般的な操作は、電話のリターン キーをクリックすることと、前のページに戻るカスタム ボタンをクリックすることです。電話機の戻るボタンをクリックするときに処理を行う必要はありません。リターン効果を実現するためのカスタム ボタンの場合は、WeChat が提供する API を呼び出す必要があります:
wx.navigateBack(OBJECT)
wx を使用することもできます。 navigateBack メソッドを使用して、デルタの値を設定するだけです。 はい:
//在C页面内 navigateBack,将返回A页面,delta = 1 时与 wx.navigateBack() 效果一致 wx.navigateBack({ delta: 2 })
ただし、この場合、前の 2 つ以上のページに戻るには、電話機の戻るボタンをクリックする必要があります。上記のメソッドを直接使用して処理することはできません。これを実現するために、次の 2 つの方法を使用しました。
方法 1: ページ C の onUnload メソッドで wx.navigateBack() を呼び出します。これにより、ページ A に戻ることができます。ただし、ページ C の場合は問題が発生します。 WeChat チャット セッションに共有し、ミニ プログラムを閉じて、チャット セッションからページ C を開きます。また、wx.navigateBack() メソッドが呼び出され、この例外が報告されます:
WAService.js:9 navigateBack with an unexist webviewId 0
方法 2: もう 1 つの方法は、方法 1 の問題を回避するために、B の onShow メソッドで wx.navigateBack() を呼び出して return を実装するページを開くことです。実装の考え方は以下の通りです:
① ページCのonUnloadメソッドで、getCurrentPages()メソッドで現在のページスタックを取得できるかどうかを判定します。ページスタックの長さに基づいて決定され、与えられる全ページのデータ設定パラメータで、前の 2 ページに戻る例:
//这里是页面C的 onUnload 方法 onUnload: function() { var that = this //判断页面栈里面的页面数是否大于2 if(getCurrentPages().length > 2) { //获取页面栈 let pages = getCurrentPages() //给上一个页面设置状态 let curPage = pages[pages.length - 2]; let data = curPage.data; curPage.setData({'isBack': true}); } },
② ページ B の onShow メソッドで、 isBack の値、wx.navigateBack() を呼び出すかどうかを決定します:
//这里是页面B的 onShow 方法 onShow: function() { var that = this //如果 isBack 为 true,就返回上一页 if(that.data.isBack) { wx.navigateBack() } },
メソッド 1 とメソッド 2 の両方 ページ C からページ A に直接移動する代わりに、最初にページ B を経由する必要があるため、ページ B はしばらくの間点滅します。より良い方法があれば教えてください。
上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
WeChat アプレットでデータ変更後にページが表示されない問題が発生する問題を解決する方法
WeChat アプレットの共有ページのホームページに戻る方法
以上がマルチレベルのページを返す WeChat アプレットを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。