Heim  >  Artikel  >  WeChat-Applet  >  So implementieren Sie das WeChat-Applet, um mehrstufige Seiten zurückzugeben

So implementieren Sie das WeChat-Applet, um mehrstufige Seiten zurückzugeben

不言
不言Original
2018-06-23 10:00:592743Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zur Implementierungsmethode für die Rückgabe mehrstufiger Seiten im WeChat-Applet vorgestellt. Ich hoffe, dass dieser Artikel allen helfen kann, eine solche Funktion zu realisieren

Implementierungsmethode zum Zurückkehren zu mehrstufigen Seiten im WeChat-Applet

Bei der Entwicklung des WeChat-Applets ist das Zurückkehren zur vorherigen Seite ein sehr häufiger Vorgang Drücken Sie in beiden Fällen die Eingabetaste des Mobiltelefons und klicken Sie auf die definierte Schaltfläche, um zur vorherigen Seite zurückzukehren. Wenn es sich um eine benutzerdefinierte Schaltfläche handelt, müssen wir die von WeChat bereitgestellte API aufrufen:

wx.navigateBack(OBJECT)

Das ist auch möglich Verwenden Sie die Methode wx.navigateBack, um zu mehrstufigen Seiten zurückzukehren. Legen Sie einfach den Wert von delta fest:

//在C页面内 navigateBack,将返回A页面,delta = 1 时与 wx.navigateBack() 效果一致
wx.navigateBack({
 delta: 2
})

Aber manchmal müssen wir auf die Zurück-Schaltfläche auf dem Telefon klicken, um zu den vorherigen zwei oder mehr zurückzukehren Daher können wir die obige Methode nicht direkt verwenden, um damit umzugehen. Ich habe die folgenden zwei Methoden verwendet, um dies zu erreichen:

Methode 1: Rufen Sie wx.navigateBack() in der onUnload-Methode von Seite C auf, damit Sie zu Seite A zurückkehren können, aber Es liegt ein Problem vor. Wenn Sie Seite C für eine WeChat-Chat-Sitzung freigeben, dann das Applet schließen und dann Seite C aus der Chat-Sitzung öffnen, wird die Methode wx.navigateBack() aufgerufen und diese Ausnahme gemeldet:

WAService.js:9 navigateBack with an unexist webviewId 0

Methode 2: Eine andere Methode besteht darin, wx.navigateBack() in der onShow-Methode von Seite B aufzurufen, um eine Rückgabe zu erreichen und so die Probleme in Methode eins zu vermeiden. Die Implementierungsidee lautet wie folgt:

① Bestimmen Sie in der onUnload-Methode von Seite C, ob die ersten n Seiten zurückgegeben werden können. Der aktuelle Seitenstapel kann über die Methode getCurrentPages() abgerufen werden Die zurückzugebenden Ebenen werden anhand der Länge des Seitenstapels bestimmt und können Parameter für die Daten aller Seiten festlegen:

 //这里是页面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});
    }
  },

② Im onShow-Methode von Seite B, bestimmen Sie anhand des Werts von isBack, ob wx.navigateBack() aufgerufen werden soll:

  //这里是页面B的 onShow 方法
  onShow: function() {
    var that = this
    //如果 isBack 为 true,就返回上一页
    if(that.data.isBack) {
      wx.navigateBack()
    }
  },

Methoden 1 und 2 gehen nicht direkt von Seite C zu Seite A. Sie müssen beide durchlaufen Seite B zuerst, damit Seite B eine Weile blinkt. Wenn Sie eine bessere Methode haben, teilen Sie mir dies bitte mit.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

So lösen Sie das Problem, dass das WeChat-Miniprogramm auf das Problem stößt, dass die Seite nach dem Ändern der Daten nicht gerendert wird

WeChat-Miniprogramm So kehren Sie zur Startseite der Freigabeseite des Programms zurück

Das obige ist der detaillierte Inhalt vonSo implementieren Sie das WeChat-Applet, um mehrstufige Seiten zurückzugeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn