vue微信分享

今天记录一下vue微信分享。

1.先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。这个不多说,见文档,只有绑定了才能进行下一步的动作

2.需要引入js文件   import wx from 'weixin-js-sdk'

3.通过config接口注入权限验证配置,所有需要使用JS-SDK的页面必须先注入配置信息 配置信息需要后端返回

  share(){
if(this.hdusers!=[]){
this.$http.post(this._getUrl()+"Index/wxShare",
{"url":window.location.href},{emulateJSON:true}
).then((response) => {
response = response.body;
// console.log(response)
this.wxInit(response);
});
}
},
mounted(){
this.share();
},
             //微信分享使用方法
wxInit(sd){
// alert(window.location.href)
let links=window.location.href; //分享出去的链接
let title='向您推荐:'+this.hdusers.name+'的活动微站'; //分享的标题
let desc='关注'+this.hdusers.name+'有新活动通知您'; //分享的详情介绍
let imgUrl=this.hduserpic;
wx.config({
debug: false,
appId: sd.appId,
timestamp: sd.timestamp,
nonceStr: sd.nonceStr,
signature: sd.signature,
jsApiList: [
'onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'
]
});
wx.ready(function () {
wx.onMenuShareTimeline({
title: title, // 分享标题
desc: desc, // 分享描述
link:links, // 分享链接
imgUrl: imgUrl, // 分享图标
success: function () {
// alert("分享到朋友圈成功")
Toast({
message: "成功分享到朋友圈"
});
},
cancel: function () {
// alert("分享失败,您取消了分享!")
Toast({
message: "分享失败,您取消了分享!"
});
}
});
//微信分享菜单测试
wx.onMenuShareAppMessage({
title:title, // 分享标题
desc: desc, // 分享描述
link: links, // 分享链接
imgUrl: imgUrl, // 分享图标
success: function () {
// alert("成功分享给朋友")
Toast({
message: "成功分享给朋友"
});
},
cancel: function () {
// alert("分享失败,您取消了分享!")
Toast({
message: "分享失败,您取消了分享!"
});
}
}); wx.onMenuShareQQ({
title:title, // 分享标题
desc: desc, // 分享描述
link:links, // 分享链接
imgUrl: imgUrl, // 分享图标
success: function () {
// alert("成功分享给QQ")
Toast({
message: "成功分享到QQ"
});
},
cancel: function () {
// alert("分享失败,您取消了分享!")
Toast({
message: "分享失败,您取消了分享!"
});
}
});
wx.onMenuShareWeibo({
title:title, // 分享标题
desc: desc, // 分享描述
link: links, // 分享链接
imgUrl: imgUrl, // 分享图标
success: function () {
// alert("成功分享给朋友")
Toast({
message: "成功分享到腾讯微博"
});
},
cancel: function () {
// alert("分享失败,您取消了分享!")
Toast({
message: "分享失败,您取消了分享!"
});
}
});
wx.onMenuShareQZone({
title:title, // 分享标题
desc: desc, // 分享描述
link: links, // 分享链接
imgUrl: imgUrl, // 分享图标
success: function () {
// alert("成功分享给朋友")
Toast({
message: "成功分享到QQ空间"
});
},
cancel: function () {
// alert("分享失败,您取消了分享!")
Toast({
message: "分享失败,您取消了分享!"
});
}
});
});
wx.error(function(res){
// alert("error")
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
},

重点:

在每个需要分享的页面成功配置后,最后发现一个问题,我在微信登陆后,后台跳回我的页面的时候,安卓手机的微信没问题,而我的苹果手机分享就一直不成功,是因为我用的是history模式,ios的微信记录的url发生了改变,因为ios的微信对于vue的单页面项目只记住第一次进来的url,所以在每一个第一次进来的url都必须注入权限验证配置,不然在后续其他页面的分享是分享不成功的。

https://github.com/vuejs/vue-router/issues/481微信分享问题

vue,一路走来(13)--vue微信分享的更多相关文章

  1. vue,一路走来(1)--构建vue项目

    2016年12月--2017年5月,接触前端框架vue,一路走来,觉得有必要把遇到的问题记录下来. 那时,vux用的是1.0的vue,然而vue2.0已经出来了,于是我结合了mint-ui一起来做项目 ...

  2. vue,一路走来(3)--数据交互vue-resource

    所有的静态页面布局完成后,最重要的就是数据交互了,简单来说,vue-resource就像jquery里的$.ajax,用来和后台交互数据的.放在created或ready里运行来获取或者更新数据的.不 ...

  3. vue,一路走来(6)--微信支付

    微信支付 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6 分享一下vue实现微信支付.在微信浏览器里面 ...

  4. vue,一路走来(5)--微信登录

    微信登录 今天又是周末了,想着博客还没记录完成.是的,下面记录一下微信登录遇到的问题. 在我的项目中,个人中心是需要完成授权登录才可以访问的,首先在定义路由的时候就需要多添加一个自定义字段requir ...

  5. vue,一路走来(16)--本地及手机调试

    闲暇时间记录一下如何绑定域名,实现本地及手机调试的过程.我的是微信开发项目,很多功能及操作都是基于微信来开发的,理所当然的就用到微信开发者工具了. 1.首先打开目录C:\Windows\System3 ...

  6. vue,一路走来(7)--响应路由参数的变化

    今天描述的问题估计会有很多人也遇到过. vue-router多个路由地址绑定一个组件造成created不执行 也就是文档描述的,如下图 我的解决方案: created () { console.log ...

  7. vue,一路走来(17)--vue使用scss,并且全局引入公共scss样式

    最近朋友问如何在vue项目中使用scss样式,想起之前项目是直接在main.js直接import css文件的,然而main.js不可以直接import scss文件. import './asset ...

  8. vue,一路走来(12)--父与子之间传参

    今天想起一直没有记录父组件与子组件的传参问题,这在项目中一直用到. 父向子组件传参 Index.vue父组件中 <component-a :msgfromfa="(positionno ...

  9. vue,一路走来(2)--路由vue-router

    安装 Mint UI cnpm install mint-ui --save 如果你的项目会用到 Mint UI 里较多的组件,最简单的方法就是把它们全部引入.此时需要在入口文件 main.js 中: ...

随机推荐

  1. Transaction 在同一个类中不生效

    参考:https://blog.csdn.net/qq_30336433/article/details/83338835 最近在开发项目中踩到一个坑,以此记录下来.以备后来人借鉴 1.相信使用spr ...

  2. 谈谈vue双向数据绑定问题

    vue是MVVM模型,vueObserver 数据监听器,把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用Object.define ...

  3. PHP PSR标准规范

    PHP PSR标准规范,PHP开发者都需要遵循规范. 官网(英文版本): https://www.php-fig.org 官网(中文版本): https://psr.phphub.org

  4. springboot启动报错start bean 'eurekaAutoServiceRegistration' NullPointerException

    解决方案参考:https://blog.csdn.net/hhj13978064496/article/details/82825365 我将eureka的依赖包放到了依赖包的最下面,启动报错, 如下 ...

  5. 2017数据科学报告:机器学习工程师年薪最高,Python最常用

    2017数据科学报告:机器学习工程师年薪最高,Python最常用 2017-11-03 11:05 数据平台 Kaggle 近日发布了2017 机器学习及数据科学调查报告,针对最受欢迎的编程语言.不同 ...

  6. Java多线程引例及实现多线程的方式

    多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术. Java多线程是由JVM来实现,不必关心操作系统的调用问题. 假如我们要实现如下功能: public c ...

  7. java 为啥可打印date

    打印一个对象的时候,会打印出它的toString方法的返回值,Date重写了toString方法.

  8. day12—jQuery ui引入及初体验

    转行学开发,代码100天——2018-03-28 按照所下载教学视频,今天已进行到jQuery UI的学习中.注:本人所用教学视频不是太完整,介绍的内容相对简单,有些只是带过.其他时间中,仍需继续针对 ...

  9. 20150803--JS学习笔记(1)

    JS中对象的 prototype 的含义: javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用. A.pro ...

  10. Linux运维知识之linux shell date 用当天时间做备份文件名

    本文主要向大家介绍了Linux运维知识之linux shell date 用当天时间做备份文件名,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. #!/bin/bash #dat ...