Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung häufiger Probleme bei der WeChat-Entwicklung

Zusammenfassung häufiger Probleme bei der WeChat-Entwicklung

韦小宝
韦小宝Original
2018-03-14 15:47:591533Durchsuche

In diesem Artikel geht es um die allgemeinen Probleme der WeChat-Entwicklung oder wenn Sie sich für die allgemeinen Probleme der WeChat-Entwicklung interessieren, schauen wir uns diesen Artikel gemeinsam an. Geben Sie ohne weiteres ein Kommen wir zur Sache

Zusammenfassung häufiger Probleme bei der WeChat-Entwicklung

1. Da die wx.request()-Methode des Miniprogramms ist asynchron, nachdem app.js jeweils Ajax ausgeführt hat Beim Laden der globalen Daten von app.js in Seiten können diese nicht der Reihe nach geladen werden. Beispiel:

//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
  }
})


Lösung: Verwenden Sie die asynchrone Promise-Funktion:

//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. Das Bild kann nur die ursprüngliche Breite und Höhe erhalten, aber Der aktuelle Wert kann nicht abgerufen werden. Es gibt Breite und Höhe. Das Bild-Tag kapselt jedoch das Modusattribut, das je nach Bedarf festgelegt werden kann.

3. Am unteren Rand jedes Bild-Tags befindet sich ein transparenter Raum, kein Abstand, kein Rand. Beim Erstellen einer Maskenebene vor dem Bild kann es zu Problemen kommen.

4. Netzwerkanforderungen müssen https bereitstellen

5. Bei der Konfiguration von tabBar muss der pagePath-Parameter im Listenparameter mindestens den ersten Pfad im Seitenarray in app.json enthalten Dies führt dazu, dass tabBar nicht angezeigt wird.

6. TabBar kann beim Springen keine Parameter annehmen:

//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. Die von der wx.request()-Methode des Miniprogramms angeforderte URL muss mit https

beginnen

8.wx.request() Wenn Sie mit der Post-Methode eine Anfrage stellen, müssen Sie auch einen Header hinzufügen. Der Header[Inhaltstyp]-Wert ist application/x-www-form-urlencoded. Beispiel:


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. Das Applet kann keine HTML-Tags laden und das Datenrendering kann keine WXML-Tags rendern (a48d5aeecca81068589e9bce01414c62 usw.) können Sie wxParse.js verwenden, um verwandte Daten zu verarbeiten.

10. Android kann die von wx.request() angeforderten Daten nicht rendern.

Überprüfen Sie, ob die zurückgegebenen Daten einen Stücklistenkopf (3 Leerzeichen) haben. Bei der wx.request-Analyse von Android wird der BOM-Header nicht übersprungen, sodass die Daten als Zeichenfolge und nicht als Objekt oder Array zurückgegeben werden.

Beispiel:

Die zurückgegebenen Daten sind: (3 Leerzeichen){a:1, b:2}

Die analysierten Daten sind: '{a: 1 , b:2}' (Zeichenfolge), nicht {a:1, b:2} (Objekt)

Da es sich nicht um ein Objekt handelt, funktionieren Vorlagenrendering und dergleichen nicht ordnungsgemäß. Die Lösung besteht darin, den Stücklistenkopf zu entfernen, bevor Daten im Hintergrund zurückgegeben werden. Wenn der BOM-Header nicht im Hintergrund entfernt wird, kann er am Frontend entfernt werden. Wenn der Datentyp von wx.request jedoch auf „Standard“ gesetzt ist, wird er standardmäßig auf „json“ gesetzt und automatisch analysiert, sodass der BOM-Header nicht entfernt werden kann .

Lösung:

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

Ändern Sie den Datentyp in ein anderes Format als JSON, um zu vermeiden, dass das Applet die JSON-Zeichenfolge automatisch analysiert und dann The trim( )-Methode entfernt Leerzeichen und analysiert schließlich die JSON-Zeichenfolge.

11. Das Auslassen mehrerer Zeilen (-webkit-line-clamp) ist beim Debuggen normal, beim Veröffentlichen jedoch ungültig.

Lösung: Wenn Sie nicht noch einmal überprüfen möchten, lassen Sie den Hintergrund einfach abschneiden

12 Die Länge eines einzelnen Satzes ist begrenzt. Daten: 1048576

appservice:16 invokeWebviewMethod-Datenübertragung Die Länge beträgt 2432088 und hat die maximale Länge von 1048576 überschritten

Es kann leicht passieren, wenn Rich Text verwendet wird, insbesondere wenn das Bild Base64 ist und die Pixel es sind sehr groß

Das ist alles für diesen Artikel. Wenn Sie nicht viel über den Inhalt wissen, können Sie ihn leicht meistern, indem Sie mehr von beiden Seiten implementieren!

Verwandte Empfehlungen:
WeChat-Entwicklung Lösung für Token-Überprüfungsfehler

WeChat-Entwicklung erhält JSAPI-Beispiel Teilen des TICKETS

Das obige ist der detaillierte Inhalt vonZusammenfassung häufiger Probleme bei der WeChat-Entwicklung. 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