小さなプログラムの Web ビュー ページの戻るボタン ジャンプの問題

目次

1. 問題の説明:

2. 理由:

3. 解決策:

4. 注意事項:


1. 問題の説明:

最近、小さなプログラムの開発では、web-view を使用して H5 ページをネストします.H5 ページは vue シングル ページであり、ルーターは履歴モードを採用しています.

WeChat アプレットの Web ビュー ページは、複数層のジャンプを含む Web サイトであり、アプレットのネイティブの左上隅をクリックすると、

ボタンをクリックすると、一度にアプレットのページに戻ることはできませんが、アプレットに戻る前に H5 のすべての履歴アドレスを返します。

ユーザーエクスペリエンスに不親切

2. 理由:

アプレットの先頭にある戻るボタンは、履歴スタックに従ってレイヤーごとに戻ります

3. 解決策:

解決策 1: H5 プロジェクトでは、this.$router.push の代わりに this.$router.replace を使用します。

説明します。

this.$router.push: 指定した URL にジャンプし、履歴スタックに新しいレコードを追加し、[戻る] をクリックして前のページに戻ります。

this.$router.replace は指定された URL にジャンプし、新しいレコードを履歴に追加せず、履歴スタックの最後のレコードを置き換え、クリックして前のページに戻ります。(A----->B----->C 結果 B は C に置き換えられます A----->C)

解決策 2: history.pushState を介して履歴レコード アイテムを追加し、history.onpopstate が履歴レコード エントリの変更を監視するときにアプレット API を呼び出します: wx.navigateBack

現在のスキーム 2 は現在のニーズに適しておらず、採用されたスキーム 1 が開発されました。

History.pushState() - Web API インターフェース リファレンス | MDN HTML ドキュメントでは、 history.pushState() メソッドは現在のブラウザー セッションの履歴スタックに状態を追加します。https://developer.mozilla.org/en-US/docs/Web/API/History/pushState

4. 注意事項:

現時点では、これらの 2 つの解決策は最善の解決策ではないと思いますが、強制的に問題を解決するだけです.同じ問題が発生した場合は、より良い解決策があればメッセージを残すことができます。

おすすめ

転載: blog.csdn.net/qq_35432904/article/details/124433585