Heim >Web-Frontend >js-Tutorial >So implementieren Sie die Rückkehr des WeChat-Applets zur mehrstufigen Seite

So implementieren Sie die Rückkehr des WeChat-Applets zur mehrstufigen Seite

小云云
小云云Original
2018-05-15 10:07:251885Durchsuche

Dieser Artikel stellt hauptsächlich die relevanten Informationen zur Implementierungsmethode für die Rückgabe mehrstufiger Seiten im WeChat-Applet vor. Ich hoffe, dass dieser Artikel allen helfen kann, eine solche Funktion zu realisieren allen helfen.

Implementierungsmethode zum Zurückgeben mehrstufiger Seiten im WeChat-Applet

Bei der Entwicklung des WeChat-Applets ist das Zurückkehren zur vorherigen Seite ein sehr häufiger Vorgang. Am häufigsten gibt es zwei Situationen: Klicken Sie auf die Eingabetaste auf dem Telefon und klicken Sie auf eine benutzerdefinierte 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)

Sie Sie können auch die Methode wx.navigateBack verwenden, um zu Seiten mit mehreren Ebenen 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 zur vorherigen zurückzukehren In diesem Fall können wir die obige Methode nicht direkt verwenden. 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 die Rückgabe zu implementieren, um 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. Hier ist ein Beispiel für die Rückkehr zu den vorherigen beiden Seiten:

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

② Bestimmen Sie in der onShow-Methode von Seite B, ob wx.navigateBack() basierend auf dem Wert von isBack aufgerufen werden soll:

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

Methoden 1 und 2 führen nicht direkt von Seite C zu Seite A. Sie beide Sie müssen zuerst Seite B durchgehen, damit Seite B blinkt. Wenn Sie eine bessere Methode haben, können Sie es mir sagen.

Verwandte Empfehlungen:

Detaillierte Erklärung zum Hochladen von Avataren im WeChat-Miniprogramm

Detaillierte Erklärung der WeChat-Miniprogrammvorlage

Methode zur Implementierung der Diagrammstilfunktion des Prozessfortschritts des WeChat-Miniprogramms

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Rückkehr des WeChat-Applets zur mehrstufigen Seite. 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