Maison >interface Web >js tutoriel >Solutions au problème de l'échec de WeChat jssdk dans les compétences iframe pages_javascript
Exigences du projet
La page d'ajout de lots sur WeChat a une fonction de téléchargement de photos. Lors du téléchargement, une iframe est ouverte. La page utilise un canevas pour charger les images sélectionnées à l'aide de l'interface de sélection d'images de WeChat jssdk (ici, WeChat renverra un localid dans le fichier). forme de weixin://xxxx, peut être directement placé dans le src de img pour un aperçu), vous pouvez zoomer, déplacer, faire pivoter et d'autres opérations, cliquez sur le bouton OK pour envoyer l'image modifiée au serveur et l'enregistrer en tant que fichier photo
Problèmes rencontrés
Une fois le développement de la fonction de sous-page terminé, si la sous-page est ouverte via une iframe sur la page principale, l'interface de sélection d'image dans l'interface WeChat jssdk ne peut pas être appelée, et les interfaces des autres jssdk également ne peut pas fonctionner correctement. Cependant, l'ouverture de la sous-page seule peut fonctionner normalement, et le partage WeChat sur la page principale est également normal.
Idées de solutions
Tout d'abord, les informations de signature de jssdk sont injectées dans la page principale et la sous-page en même temps. Y a-t-il un conflit possible ? Après tests, cette possibilité a été exclue. Grâce à des recherches sur Internet, certains internautes ont décrit des problèmes similaires au mien dans cet article, mais il n'y a pas de solution http://www.weixin.com/thread-8022-1-1.html
Après le test, la vérification de la signature peut être effectuée sur la page principale et les informations de signature de jssdk ne sont pas ajoutées à la sous-page. Lorsque vous devez appeler l'interface jssdk, telle que l'interface de sélection d'image, ajoutez parent. avant la fonction jssdk, c'est-à-dire appelez cette fonction de la page parent. Après le test, la fonction peut être appelée normalement.
parent.wx.chooseImage({ success: function (res) { //upload_success(res.localIds); }
Il convient de mentionner que WeChat jssdk semble être puissant, mais il présente de nombreux bugs et ne peut pas résister à un examen minutieux lorsqu'il est réellement utilisé dans des projets. Bien que ce problème ait été résolu, un nouveau problème est apparu. Les images exportées par Canvas ne peuvent pas traverser les domaines. . . Au final, l'interface de WeChat n'a pas été utilisée pour répondre aux besoins.
Ce qui précède est la solution au problème de l'échec de WeChat jssdk dans les pages iframe introduit par l'éditeur. J'espère que cela sera utile à tout le monde !