Maison  >  Article  >  Applet WeChat  >  Comment implémenter l'applet WeChat pour renvoyer des pages à plusieurs niveaux

Comment implémenter l'applet WeChat pour renvoyer des pages à plusieurs niveaux

不言
不言original
2018-06-23 10:00:592793parcourir

Cet article présente principalement des 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. Les amis dans le besoin pourront s'y référer

<.>Méthode de mise en œuvre pour revenir aux 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. Les plus courantes consistent à cliquer sur le retour. du téléphone et cliquez sur Le bouton défini revient à la page précédente dans les deux cas. 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 implémenter 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({&#39;isBack&#39;: 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. Elles sont toutes les deux. Je dois d'abord passer par la page B, donc la page B clignotera. Si vous avez une meilleure méthode, vous pouvez me le dire.


Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment résoudre le problème que le mini programme WeChat rencontre le problème que la page ne s'affiche pas après la modification des données

Mini programme WeChat Comment revenir à la page d'accueil de la page de partage du programme

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