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. LSTM 神经网络输入输出层

    今天终于弄明白,TensorFlow和Keras中LSTM神经网络的输入输出层到底应该怎么设置和连接了.写个备忘. https://machinelearningmastery.com/how-to- ...

  2. vuex的mapState方法来获取vuex的state对象中属性

    有两种写法 1.首先在组件中引入vuex的mapState方法: 首先在组件中引入vuex的mapState方法: import { mapState } from 'vuex' 然后在compute ...

  3. easyui for jquery之tooltip

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. SqlServer 查看缓存 并合理设置最大内存

    SqlServer 服务器运行一段时间发现内存逐渐增长 飙升到98%了 解决方法: 重启主机 重启SqlServer服务 设置最大内存 前两种方法不太适合线上环境 且指标不治本 建议用设置最大内存 如 ...

  5. 牛客提高D3t2 点与面

    分析 对于每一个点只要维护它前面/后面的一小一大组合的数量 对于这个可以维护两个树状数组 然后从前往后/从后往前分别扫一遍相乘即可 代码 #include<iostream> #inclu ...

  6. potplayer录制视频包含字幕

    用potplayer录制视频,只能保存视频,外挂字幕的视频字幕无法录制进去 在字幕设置里将几个选项更改,即 字幕输出方式改为直接, 渲染方式不要选矢量即可. 如图:

  7. linux 复制到远程服务器

    scp 文件路径 root@192.168.0.1:文件夹路径 会提示你输入远程服务器密码

  8. Delphi 快速读取TXT 指定行的数据

    http://blog.csdn.net/MichaelJScofield/article/details/41869785 Delphi 快速读取TXT 指定行的数据 分类:Delphi个人挫品 ( ...

  9. 查询SQLSERVER执行过的SQL记录(历史查询记录)(转)

    原文链接:https://www.cnblogs.com/icycore/p/10493237.html 有的时候,需要知道近段时间SQLSERVER执行了什么语句,可以用下面的方法: SELECT ...

  10. CentOS vim的使用

    安装vim工具 [root@bogon ~]# yum install -y vim-enhanced 卸载vim工具 [root@bogon ~]# yum remove -y vim* vim常用 ...