Maison  >  Article  >  interface Web  >  Comment implémenter le retour de l'applet WeChat à la page à plusieurs niveaux

Comment implémenter le retour de l'applet WeChat à la page à plusieurs niveaux

小云云
小云云original
2018-05-15 10:07:251807parcourir

Cet article présente principalement les informations pertinentes sur la méthode de mise en œuvre du renvoi de pages à plusieurs niveaux dans l'applet WeChat. J'espère que cet article pourra aider tout le monde à réaliser une telle fonction. J'espère qu'il pourra s'y référer. aider tout le monde.

Méthode de mise en œuvre pour renvoyer des pages multi-niveaux dans l'applet WeChat

Dans le développement de l'applet WeChat, le retour à la page précédente est une opération très courante, le plus courant Il existe deux situations : cliquer sur la touche retour du téléphone et cliquer sur un bouton personnalisé pour revenir à la page précédente. Nous n'avons besoin d'effectuer aucun traitement lorsque nous cliquons sur le bouton de retour du téléphone. S'il s'agit d'un bouton personnalisé pour obtenir l'effet de retour, nous devons appeler l'API fournie par WeChat :

wx.navigateBack(OBJECT)

Vous peut également utiliser la méthode wx.navigateBack pour revenir aux pages à plusieurs niveaux. Il suffit de définir la valeur de delta :

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

Mais parfois, nous devons cliquer sur le bouton de retour du téléphone pour revenir au précédent. deux pages ou plus. Dans ce cas, nous ne pouvons pas utiliser directement la méthode ci-dessus pour le gérer. J'ai utilisé les deux méthodes suivantes pour y parvenir :

Méthode 1 : Appelez wx.navigateBack() dans la méthode onUnload de la page C, afin de pouvoir revenir à la page A, mais il y aura un problème. Si vous partagez la page C dans une session de discussion WeChat, puis fermez l'applet, puis ouvrez la page C à partir de la session de discussion, la méthode wx.navigateBack() sera appelée et cette exception sera signalée :

WAService.js:9 navigateBack with an unexist webviewId 0

Méthode 2 : Une autre méthode consiste à appeler wx.navigateBack() dans la méthode onShow de la page B pour obtenir le retour, afin d'éviter les problèmes de la première méthode. L'idée d'implémentation est la suivante :

① Dans la méthode onUnload de la page C, déterminez si les n premières pages peuvent être renvoyées. La pile de pages actuelle peut être obtenue via la méthode getCurrentPages(), et le nombre de. les calques qui peuvent être renvoyés sont déterminés en fonction de la longueur de la pile de pages et peuvent définir des paramètres pour les données de toutes les pages. Voici un exemple de retour aux deux pages précédentes :

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

②. Dans la méthode onShow de la page B, déterminez s'il faut appeler wx.navigateBack() en fonction de la valeur de isBack :

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

Les méthodes 1 et 2 ne vont pas directement de la page C à la page A. les deux doivent d'abord passer par la page B, donc la page B clignotera. Si vous avez une meilleure méthode, vous pouvez me le dire.

Recommandations associées :

Explication détaillée du téléchargement d'avatars dans le mini-programme WeChat

Explication détaillée du modèle de mini-programme WeChat

Méthode d'implémentation de la fonction de style graphique de la progression du processus du mini programme WeChat

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn