Maison > Article > interface Web > Comment implémenter la fonction actuelle de partage de pages d'autres pages dans vue
Cet article présente principalement en détail la fonction de partage de Vue WeChat. Vue implémente la page actuelle pour partager d'autres pages, qui ont une certaine valeur de référence. Les amis intéressés peuvent s'y référer
Les exemples de cet article sont. pour tout le monde Le code spécifique pour le partage et l'affichage de vue WeChat est partagé pour votre référence. Le contenu spécifique est le suivant
Prenons d'abord le partage avec des amis comme exemple
1. documents
wx.onMenuShareAppMessage({ title: '', // 分享标题 desc: '', // 分享描述 link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: '', // 分享图标 type: '', // 分享类型,music、video或link,不填默认为link dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } });
2. Pièges dans le partage de vue
* 1. Obtenir une URL dynamique dans le partage WeChat
* 2. Paramètres automatiquement ajoutés par le partage secondaire WeChat form=singlemessage
* 3. Chacune des pages de vue peut appeler le partage
3 Analyse directe du code
Afin de garantir que chaque page peut appeler le partage WeChat, vous devez ajouter une surveillance de la montre
code.
watch: { // 监听 $route 变化调用分享链接 "$route"(to, from) { let currentRouter = this.$router.currentRoute.fullPath; if(currentRouter.indexOf('userShare') == -1){ //如果不是userShare分享页面,则分享另外一个接口 this.shareOut(); }else{ this.shareOutTwo(); //当前页面是userShare页面时分享调用另外一个接口 } } },4. Fonction shareOut()
let signStr = ''; //sha1加密字符串 let timestamp = 1473254558; //时间戳 let nonceStr = 'shupao'; var obj = { title:"", //标题 desc:"文字描述", //描述 link:"http://www.XXXXXX.com/wx/pub/sr/simpleRegister.do", imgUrl:"http://XXXXXXXXX.com/picactive.jpg" }; this.$ydkAjax({ SENTYPE: "GET", url: this.$domain + '/wx/pub/common/getJsApiTicket.json', //自己服务器获取jsapi_ticket接口 params: null, successFc: (response) => { //拼接sha1加密字符串 signStr = 'jsapi_ticket=' + response.data.data + '&noncestr=' + nonceStr + '×tamp=' + timestamp + '&url=' + window.location.href; var signature = SHA1(signStr); wx.config({ debug: false, appId: "wx6957b3a945a05e90", //appId timestamp: timestamp, //时间戳 nonceStr: nonceStr, //加密需要字符串(自己定义的) signature: signature, //sha1加密后字符串 jsApiList: [ 'onMenuShareTimeline', 'onMenuShareAppMessage'] }); wx.ready(function () { //分享到朋友圈" wx.onMenuShareTimeline({ title: obj.title, link: obj.link, // 分享链接 imgUrl: obj.imgUrl, // 分享图标 success: function () { // console.log('分享到朋友圈成功') }, cancel: function () { // console.log('分享到朋友圈失败') } }); //分享给朋友 wx.onMenuShareAppMessage({ title: obj.title, // 分享标题 desc: obj.desc, // 分享描述 link: obj.link, // 分享链接 imgUrl: obj.imgUrl, // 分享图标 success: function () { // console.log('分享到朋友成功') }, cancel: function () { // console.log('分享到朋友失败') } }); }) }, isLayer: false })5 Choses à noter *1 L'URL est obtenue directement via la fenêtre. .location.href, pas Utilisez window.location.href.split("#")[0] pour l'obtenir, car mon projet vue utilise le mode de hachage pour les sauts de routage, utilisez donc window.location.href.split("#" )[ directement 0] entraînera l'échec de la signature
//拼接sha1加密字符串 signStr = 'jsapi_ticket=' + response.data.data + '&noncestr=' + nonceStr + '×tamp=' + timestamp + '&url=' + window.location.href*2 De plus, une fois la page actuelle partagée, d'autres utilisateurs l'ouvriront et ce ne sera pas la page partagée actuelle. l'objet obj dans la fonction shareOut(). Le paramètre link in est le lien vers d'autres pages 6. Le paramètre link L'url du résumé de la chaîne cryptée dans les 5 questions ci-dessus et le lien de page dans le lien dans l'objet de partage n'a pas besoin de rester le même, car le but initial est de partager des liens vers d'autres pages sur la page actuelle. J'ai vu quelqu'un sur Internet dire que ces deux doivent rester les mêmes. En fait, ce n'est pas nécessaire, à moins que vous ne partagiez simplement l'une des pages du projet Vue, puis que vous ne partagiez que la page actuelle pour que les deux restent cohérentes. Ce qui précède est ce que j'ai compilé pour vous. J'espère que cela vous sera utile à l'avenir. Articles connexes :
Difficultés dans les opérations sur les tableaux JavaScript (tutoriel détaillé)
Comment utiliser vue pour implémenter des composants de défilement transparent
Comment implémenter flux sur knockoutjs
Comment construire un framework de simulation de données universelle front-end (tutoriel détaillé)
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!