Maison  >  Article  >  développement back-end  >  Résumé des problèmes courants dans le développement de WeChat

Résumé des problèmes courants dans le développement de WeChat

韦小宝
韦小宝original
2018-03-14 15:47:591533parcourir

Cet article parle des problèmes courants du développement de WeChat. Si vous ne connaissez pas les problèmes courants du développement de WeChat ou si vous êtes intéressé par les problèmes courants du développement de WeChat, jetons un coup d'œil à cet article ensemble. sans plus tarder, entrez Allons droit au but

Résumé des problèmes courants dans le développement de WeChat

1 Puisque la méthode wx.request() du mini programme est. asynchrone, après que app.js exécute ajax, chaque lors du chargement des données globales de app.js dans les pages, elles ne peuvent pas être chargées dans l'ordre. Exemple :

//app.js
App({
  ajax:function(){
    let that = this;
    wx.request({
      url: 'https://a.com/url.php',
      method: 'GET',
      success: function(e){
        that.data = 123;
      }
    })
  };
})
//content.js
let app = getApp()
Page({
  getData: function(){;
    app.ajax();
    console.log(app.data); //undefined
  }
})


Solution, utilisez la fonction asynchrone Promise :

//app.js
App({
  ajax:function(){
    let that = this;
    let promise = new Promise(function(resolve, reject){
      wx.request({
        url: 'https://a.com/url.php',
        method: 'GET',
        success: function(e){
          that.data = 123;
          resolve();
        }
      })
    });
  };
})
//content.js
let app = getApp()
Page({
  getData: function(){;
    app.ajax().then(()=>{
      console.log(app.data); //123
    });
  }
})

2. L'image ne peut obtenir que la largeur et la hauteur d'origine, mais Impossible d'obtenir le courant. Il y a la largeur et la hauteur. Cependant, la balise image encapsule l'attribut mode, qui peut être défini en fonction des besoins.

3. Il y a un espace transparent au bas de chaque balise d'image, pas de remplissage, pas de marge. Vous risquez de rester bloqué lorsque vous créez un calque de masque devant l'image.

4. Les requêtes réseau doivent déployer https

5. Lors de la configuration de tabBar, le paramètre pagePath dans le paramètre list doit contenir au moins le premier chemin du tableau pages dans app.json, sinon cela entraînera que tabBar ne soit pas affiché.

6. TabBar ne peut pas prendre de paramètres lors du saut Solution :

//search.js
var app = getApp();
Page({
  confirm: function(e){
    //获取数据,添加到全局
    let val = e.detail.value;
    app.searchWord = val;
    this.jump();
  },
  jump: function(){
    //跳转tabBar
    wx.switchTab({
      url: '../index/index',
    });
  },
});
  
//index.js
var app = getApp();
Page({
  onShow: function(e){
    //获取全局数据
    let val = app.searchWord;
  }
});
//需要传递参数的页面在跳转前将数据添加到app.js里。需要接受参数的页面在onShow方法接受之前添加到app.js的数据。

7 L'url demandée par la méthode wx.request() du mini programme doit commencer par https

.

8.wx.request() Lors d'une demande utilisant la méthode post, vous devez également ajouter un en-tête. La valeur header[content-type] est application/x-www-form-urlencoded. Exemple :


wx.request({
  url: 'https://a.com/url.php',
  data: {message: 123},
  method: 'POST',
  header: {
    'content-type': 'application/x-www-form-urlencoded'
  },
  success: function(e){
    console.log(e)
  }
});


9. L'applet ne peut pas charger les balises HTML et le rendu des données ne peut pas restituer les balises wxml (06ae6e2108ab8fd5cf395d3a4c72bf7b, etc.), vous pouvez utiliser wxParse.js pour traiter les données associées.

10. Android ne peut pas restituer les données demandées par wx.request().

Vérifiez si les données renvoyées ont un en-tête de nomenclature (3 caractères d'espace vide). L'analyse wx.request d'Android n'ignore pas l'en-tête de la nomenclature, ce qui entraîne le renvoi des données sous forme de chaîne au lieu d'un objet ou d'un tableau.

Exemple :

Les données renvoyées sont : (3 caractères vides){a:1, b:2}

Les données analysées sont : '{a : 1 , b:2}' (chaîne), pas {a:1, b:2} (objet)

Comme il ne s'agit pas d'un objet, le rendu du modèle et autres ne fonctionneront pas correctement. La solution consiste à supprimer l'en-tête de la nomenclature avant de renvoyer les données en arrière-plan. Si l'en-tête de BOM n'est pas supprimé en arrière-plan, il peut être supprimé sur le front-end. Cependant, si le dataType de wx.request est par défaut, il sera par défaut json et sera automatiquement analysé, ce qui rendra impossible la suppression de l'en-tête de BOM. .

Solution :

wx.request({
  url: url,
  method: 'GET',
  dataType: 'txt',
  success: function(e){
    let json = e.data.trim();
    let arr = JSON.parse(json);
  }
});

Changez le dataType dans un format autre que json pour éviter que l'applet n'analyse automatiquement la chaîne json puis utilise The trim( ) supprime les espaces et analyse enfin la chaîne json.

11. L'omission de plusieurs lignes (-webkit-line-clamp) est normale lors du débogage, mais invalide lors de la publication.

Solution : si vous ne souhaitez plus réviser, laissez simplement l'arrière-plan tronquer

12 Il y a une limite à la longueur d'un seul setData : 1048576

. appservice:16 InvocationWebviewMethod transmission de données La longueur est de 2432088 et a dépassé la longueur maximale de 1048576

Cela arrive facilement lors de l'utilisation de texte enrichi, en particulier lorsque l'image est en base64 et que les pixels sont très grand

C'est tout pour cet article. Si vous ne connaissez pas grand-chose au contenu, vous pouvez facilement le maîtriser en implémentant davantage les deux côtés !

Recommandations associées :
Solution d'échec de vérification des jetons de développement WeChat

Le développement WeChat obtient un exemple JSAPI partage de TICKET

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