Maison > Article > interface Web > Problèmes et solutions rencontrés dans le développement mobile H5
Le contenu de cet article concerne les problèmes et les solutions rencontrés dans le développement mobile H5. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Erreur de signature de partage WeChat signature invalide
En mode historique d'application sur une seule page, le partage WeChat provoque toujours une erreur de signature signature invalide
Selon le document du site officiel de WeChat, jssdk a été introduit, corrigez Configurez un nom de domaine sécurisé js et la signature générée par le développeur backend est également vérifiée par l'outil de signature WeChat. Cependant, le partage personnalisé sur le front-end continue de signaler une erreur de signature et il n'y a aucun moyen de le faire. personnalisez le partage. Si vous vous assurez qu'il n'y a aucun problème avec la configuration de base et que la signature réussit également la vérification de l'outil de signature WeChat, il peut s'agir d'une erreur de signature causée par l'incohérence entre l'URL accessible par le front-end et l'URL. généré par l'arrière-plan.
Si le front-end transmet l'URL au back-end via ajax pour obtenir la signature, alors nous devons supprimer la partie de hachage de la page actuelle du lien, et nécessite encodeURIComponent
let url = location.href.split('#')[0] encodeURIComponent(url)
Normalement, cela peut permettre un partage personnalisé sur WeChat, mais une fois le routage de l'application d'une seule page changé, le côté IOS affiche toujours une erreur de signature, et le côté Android ne le fait pas. Problème
Cela est dû au fait que l'affichage en mode historique est commuté via pushState, mais le client IOS WeChat (le client Android a été corrigé) ne prend pas en charge la nouvelle fonctionnalité H5 de pushState, donc le routage a changé mais le navigateur WeChat L'URL obtenue n'a pas changé. Lorsque j'ai copié le lien dans le coin supérieur droit, j'ai constaté que l'URL enregistrée par WeChat est toujours l'URL lorsque je l'ai saisie pour la première fois, sauf si vous l'actualisez manuellement ou à l'aide de window.location. et d'autres méthodes de saut de page, vous pouvez obtenir la dernière URLLa solution consiste à enregistrer l'URL lors de la saisie de la page. S'il s'agit d'un appareil iOS, utilisez cette URL pour obtenir la signature WeChat<.>
À l'heure actuelle, il est correct d'utiliser cette URL pour obtenir la signature WeChat. Cette méthode ne convient qu'aux appareils IOS. Tant que l'URL signée est cohérente avec l'URL enregistrée par WeChat, elle sera correcte. .router.afterEach(to => { sessionStorage.setItem('currentUrl',window.location.href) }) let url = encodeURIComponent(location.href.split('#')[0]) if(system == "iOS" && sessionStorage.getItem('currentUrl')) { url = encodeURIComponent(sessionStorage.getItem('currentUrl').split('#')[0]) }
Problème de mise en cache aller-retour
S'il s'agit d'une application Vue monopage et que keep-alive est utilisé, la page ne sera pas actualisée pour le moment, certaines interfaces. les requêtes peuvent être Placez-le dans la méthode beforeRouteEnter
IOS ne prend pas en charge le format de new Date("2019-01-01 00:00:00")
let date = '2019-01-01 00:00:00' date.replace(/\-/g, '/')
Impossible. être cliqué sur IOS
l'audio ne peut pas être joué
Vous pouvez regarder l'audio en écoutant la méthode LoadData. S'il peut commencer à jouer, Android est configuré pour commencer à jouer une fois l'audio chargé, mais il peut y avoir un problème. léger retard du côté iOS. À ce moment-là, nous pouvons savoir si la lecture audio a commencé via audio.currentTime. Si cette valeur est supérieure à 0, cela signifie que la lecture a commencé
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!