weixin-js-sdk
场景:在h5移动端,实现分享朋友,分享朋友圈。
插曲:一开始我认为是不能做到分享的,主要是我从微信小程序的角度出发的,想着微信小程序都做不到分享朋友圈功能,那h5就更不能实现了,导致出现了错误的判断。那么我就来总结一下实现都步骤吧!
开发环境:vue-cli2,vux,axios
注意:一定要去看sdk都官方文档:
import axios from 'axios'
import wx from 'weixin-js-sdk'
//技术文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#2
//要用到微信API
function getJSSDK(shareUrl, dataForWeixin) {
// 'http://www.hashclub.net/front/wechat/getconfig'
axios.post(后台接口, {
url:shareUrl
}).then(res => {
console.log(res.data);
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: res.data.appid, // 必填,公众号的唯一标识
timestamp: res.data.timestamp, // 必填,生成签名的时间戳
nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
signature: res.data.signature, // 必填,签名
jsApiList: [
'updateAppMessageShareData', 'updateTimelineShareData'
] // 必填,需要使用的JS接口列表
})
wx.ready(function () {
// 自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)
wx.updateAppMessageShareData({
title: dataForWeixin.title,
desc: dataForWeixin.des,
link: dataForWeixin.linkurl,
imgUrl: dataForWeixin.img,
success: function success(res) {
console.log(res) // errmsg:updateAppMessageShareData:OK
console.log('已分享');
},
cancel: function cancel(res) {
console.log('已取消');
},
fail: function fail(res) {
alert(JSON.stringify(res));
}
});
// 自定义“ 分享到朋友圈” 及“ 分享到QQ空间” 按钮的分享内容( 1.4 .0)
wx.updateTimelineShareData({
title: dataForWeixin.title,
link: dataForWeixin.linkurl,
imgUrl: dataForWeixin.img,
success: function success(res) {
console.log(res)
alert('已分享');
},
cancel: function cancel(res) {
alert('已取消');
},
fail: function fail(res) {
alert(JSON.stringify(res));
}
});
})
wx.error(function (res) {
alert("微信验证失败");
});
})
}
export default {
// 获取JSSDK
getJSSDK
}
分享页面调用src/views/activity/detail.vue
<x-button class="buy" @click.native.prevent="share" >分享</x-button>
methods: {
share(){
let obj={
title: this.info.title,// 分享标题
des: this.info.content,// 分享描述
linkurl:`${process.env.BASE_API}vux/#/activity/detail?id=${this.$route.query.id}`,// 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
img:this.info.img // 分享图标
}
// let url = encodeURIComponent(window.location.href.split('#')[0]);
let url = window.location.href.split('#')[0]
sdk.getJSSDK(url, obj)
// 显示
this.$vux.toast.show({
text: '请点击右上角浏览器分享功能'
})
}
}
总结:h5的分享,其实也就是浏览器功能的分享,只是我们自定义了分享的标题,描述,地址以及图片,至于分享朋友(调出好友列表)/分享朋友圈(调出微信发布界面),这就不是前端实现的范畴了。人家微信也没有开放调出好友列表和朋友圈的接口啊!
拓展:有没有办法点击分享,直接打开浏览器右上角菜单,如图:

答案:无解,再说腾讯爸爸现在不让这么干了。
解决方案,增加分享指示

weixin-js-sdk的更多相关文章
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制
在<Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明>中,我介绍了获取AccessToken(通用接口)的方法. 在实际的开发过程中,所有的高级接口都需 ...
- 实战微信JS SDK开发:贺卡制作与播放(1)
前段时间忙于CanTK 2.0的开发,所以博客一直没有更新.CanTK 2.0主要增强了游戏和富媒体的开发,现在编码和测试基本完成了,等文档完成了再正式发布,里面有不少激动人心的功能,等发布时再一一细 ...
- 微信JS SDK接入的几点注意事项
微信JS SDK接入,主要可以先参考官网说明文档,总结起来有几个步骤: 1.绑定域名:先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”.备注:登录后可在“开发者中心”查看对 ...
- 公众号第三方平台开发 教程六 代公众号使用JS SDK说明
公众号第三方平台开发 教程一 创建公众号第三方平台 公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取 公众号第三方平台开发 教程三 微信公众号 ...
- 微信js sdk上传多张图片
微信js sdk上传多张图片,微信上传多张图片 该案例已tp3.2商城为例 直接上代码: php代码: public function ind(){ $appid="111111111111 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(二十一):在小程序中使用 WebSocket (.NET Core)
本文将介绍如何在 .NET Core 环境下,借助 SignalR 在小程序内使用 WebSocket.关于 WebSocket 和 SignalR 的基础理论知识不在这里展开,已经有足够的参考资料, ...
- 调用微信js sdk
场景:需要调用微信获取当前位置的借口. 途径:查看微信 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 .后 ...
- 微信企业号JS SDK
微信企业号JS SDK <?php define('CorpID', "wx82e2c31215d9a5a7"); define('CorpSecret', "&q ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十八):Web代理功能
在Senparc.Weixin.dll v4.5.7版本开始,我们提供了Web代理功能,以方便在受限制的局域网内的应用可以顺利调用接口. 有关的修改都在Senparc.Weixin/Utilities ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十七):个性化菜单接口说明
前不久微信上线了个性化菜单接口,Senparc.Weixin SDK也已经同步更新. 本次更新升级Senparc.Weixin.MP版本到v13.5.2,依赖Senparc.Weixin版本4.5.4 ...
随机推荐
- Flask 开启多进程或多线程
2018-07-15 23:31:20 yang9315 阅读数 7703更多 分类专栏: python 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接 ...
- Unity 渲染教程余下
可能来源于(英文):https://catlikecoding.com/unity/tutorials/ Unity渲染教程(一):矩阵 http://gad.qq.com/pro ...
- 201671010403 陈倩倩 实验十四 团队项目评审&课程学习总结
一:实验名称:团队项目评审&课程学习总结 二:实验目的与要求 (1)掌握软件项目评审会流程: (2)反思总结课程学习内容. 三:实验步骤 任务一:按照团队项目结对评审名单,由项目组扮演乙方,结 ...
- 认识Activiti
之前没有用到过工作流,这次由于需要,用到了Activiti工作流引擎,首先要做的就是先来了解一下什么是工作流引擎,它能够完成什么的任务,我们在什么情况下选用工作流引擎来处理问题. 1.Activiti ...
- SQL编程规范整理
一.排版规范 1.代码缩进 对于判断.循环等处理使用字符缩进 缩进的空格最好不要使用TAB键 2.空格及换行 变量定义.相对独立的程序块等要单独成行,便于阅读 太长的程序(超过110列)应做换行处理 ...
- Log4j 日志输出学习(Eclipse)
学习网址1:http://www.cnblogs.com/licheng/archive/2008/08/23/1274566.html 一.快速入手 1.官网下载log4j压缩包,本地加压 2.Ec ...
- 没有内置小鹤双拼的rime输入法就是差劲
没有内置小鹤双拼的rime输入法就是差劲,还特立独行,搞什么繁体~ 没有内置小鹤双拼的rime输入法就是差劲,还特立独行,搞什么繁体~ 没有内置小鹤双拼的rime输入法就是差劲,还特立独行,搞什么繁体 ...
- linux学习13 Linux运维常用文件管理命令及系统变量基础
一.文件管理命令 1.cp命令,copy a.单源复制,cp [OPTION]... [-T] SOURCE DEST 如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中. 如果D ...
- Linux下Python3源码安装
1.下载 wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz 2.解压 tar -xzvf Python-3.7.4.tgz 3 ...
- podium服务器端的微前端开发框架
podium 是一个比较全的微前端开发框架. 具有以下特性 自治开发 强大的组合能力 基于约定的开发模式 podium 包含的组件 podlets 页面片段,是一个独立的http 服务,独立运行的,实 ...