Maison > Applet WeChat > Développement de mini-programmes > Résumé des problèmes rencontrés lors du développement des mini programmes WeChat

Résumé des problèmes rencontrés lors du développement des mini programmes WeChat

高洛峰
Libérer: 2017-02-18 11:55:13
original
1818 Les gens l'ont consulté

Résumé des problèmes rencontrés dans le développement des mini-programmes WeChat

1 Puisque la méthode wx.request() du mini-programme est asynchrone, après que app.js exécute ajax, chaque page est chargée Les données globales de app.js 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
  }
})
Copier après la connexion

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
    });
  }
})
Copier après la connexion

2. L'image ne peut obtenir que la largeur et la hauteur d'origine, mais ne peut pas obtenir la largeur et la hauteur existantes. 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的数据。
  
Copier après la connexion

7. l'url doit commencer par https

8.wx.request() Lorsque vous utilisez la méthode post pour demander, vous devez également ajouter un en-tête, et la valeur d'en-tête[content-type] est application/x-www- formulaire-urlencodé. 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)
  }
});
Copier après la connexion

9. L'applet ne peut pas charger les balises HTML et le rendu des données ne peut pas restituer les balises wxml ( 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);
  }
});
Copier après la connexion

Changez le dataType dans un format autre que json pour éviter que l'applet ne soit analysée automatiquement json, puis utilisez la méthode trim() sur les données renvoyées pour supprimer les espaces, et enfin analysez 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 pas réviser, laissez simplement l'arrière-plan tronquer

Merci d'avoir lu, j'espère que cela pourra aider tout le monde, merci pour votre soutien à ce site !

Pour plus d'articles connexes sur le résumé des problèmes rencontrés dans le développement des mini programmes WeChat, veuillez faire attention au site Web PHP chinois !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal