js微信分享接口调用详解


Posted in Javascript onJuly 23, 2019

本文实例为大家分享了js微信分享接口调用的具体代码,供大家参考,具体内容如下

微信api直通车,仔细阅读官方文档问题都可以解决的

好吧,最近用到了,整理下发出来,就这个效果吧

js微信分享接口调用详解

1.设置js接口安全域名

这需要使用微信的jssdk,先需要在微信公众号后台进行设置:公众号设置-->功能设置-->JS接口安全域名。打开这个页面之后你会看到下面的提示。需要先下载这个文件并上传到指定域名的根目录。

js微信分享接口调用详解

这个文件里面是一个字符串,从名称看是用来校验用的。先上传了这个文件,你才能保存成功。这样你就可以使用jssdk了。

2.页面,要从后台获取签名

页面核心代码,用的是jweixin-1.4.0.js,最新版的说是将之前的四个接口合并成两个,不知道为什么没起作用,所以还是用之前的四个吧

<script src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
<script>
 var currurl = decodeURIComponent(location.href.split('#')[0]);
 
 var res = ${(jsApi)!};
 wx.config({
 debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
 appId: res.appId, // 必填,公众号的唯一标识
 timestamp: res.timestamp, // 必填,生成签名的时间戳
 nonceStr: res.nonceStr, // 必填,生成签名的随机串
 signature: res.signature,// 必填,签名
 jsApiList: ["checkJsApi","updateAppMessageShareData","updateTimelineShareData", "onMenuShareTimeline", "onMenuShareAppMessage", "onMenuShareQQ", "onMenuShareQZone"] // 必填,需要使用的JS接口列表
 });
 wx.ready(function () {
 // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
 wx.checkJsApi({
 jsApiList : ["checkJsApi", "updateAppMessageShareData","updateTimelineShareData","onMenuShareTimeline", "onMenuShareAppMessage", "onMenuShareQQ", "onMenuShareQZone"], // 需要检测的JS接口列表,所有JS接口列表见附录2,
 success : function(res) {
 // 以键值对的形式返回,可用的api值true,不可用为false
 // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
 // alert(res.checkResult);
 // alert(res.errMsg);
 }
 });
 //自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)
 wx.updateAppMessageShareData({
 title:"饿了么红包", // 分享标题
 desc: "饿了么红包描述", // 分享描述
 link: currurl, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
 imgUrl: ${(pic)!}, // 分享图标
 success: function () {
 // 设置成功
 }
 })
 //自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容(1.4.0)
 wx.updateTimelineShareData({
 title:"饿了么红包", // 分享标题
 link: currurl, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
 imgUrl: ${(pic)!},
 success: function () {
 // 设置成功
 }
 });
 //朋友圈
 wx.onMenuShareTimeline({
 title:"饿了么红包", // 分享标题
 link: currurl, // 分享链接
 imgUrl: "图片地址",
 success: function (res) {
 },
 cancel: function (res) {
 },
 fail: function (res) {
 alert(JSON.stringify(res));
 }
 });
 //朋友
 wx.onMenuShareAppMessage({
 title:"饿了么红包", // 分享标题
 desc: "饿了么红包描述", // 分享描述
 link: currurl, // 分享链接
 imgUrl: "图片地址",
 type: '', // 分享类型,music、video或link,不填默认为link
 dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
 success: function () {
 // 用户确认分享后执行的回调函数
 },
 cancel: function () {
 // 用户取消分享后执行的回调函数
 }
 });
 //QQ
 wx.onMenuShareQQ({
 title:"饿了么红包", // 分享标题
 desc: "饿了么红包描述", // 分享描述
 link: currurl, // 分享链接
 imgUrl: "图片地址", // 分享图标
 success: function () {
 // 用户确认分享后执行的回调函数
 },
 cancel: function () {
 // 用户取消分享后执行的回调函数
 }
 });
 //QQ空间
 wx.onMenuShareQZone({
 title:"饿了么红包", // 分享标题
 desc: ${(describe)!}, // 分享描述
 link: currurl, // 分享链接
 imgUrl: "图片地址", // 分享图标
 success: function () {
 // 用户确认分享后执行的回调函数
 },
 cancel: function () {
 // 用户取消分享后执行的回调函数
 }
 });
 
 });
 wx.error(function (res) {
 // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
 console.log("初始化wx.config失败" + res)
 });
</script>

 3.后端获取签名,注意签名的算法,不然就会签名失败啊,怎么算的,看微信附录1-JS-SDK使用权限签名算法

@GetMapping(value = "/test")
public String test(@RequestParam(value = "id")Long id,Model model,HttpServletRequest request ) throws WxErrorException{
 String url = request.getRequestURL().toString()+"?id="+id;
 WxJsapiSignature sign = wxMpService.createJsapiSignature(url);
 model.addAttribute("jsApi",JsonUtils.toJson(sign));
 return "对应的页面";
 }

最后说总结下思路,1下载文件,2后台获取签名(注意签名算法),3页面引入js调用接口。

完成!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一些不错的js函数ajax
Aug 20 Javascript
JavaScript 5 新增 Array 方法实现介绍
Feb 06 Javascript
js的image onload事件使用遇到的问题
Jul 15 Javascript
javascript密码强度校验代码(两种方法)
Aug 10 Javascript
D3.js实现文本的换行详解
Oct 14 Javascript
EasyUI学习之Combobox下拉列表(1)
Dec 29 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
May 30 Javascript
JavaScript实现三级联动效果
Jul 15 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
Dec 29 Javascript
Javascript实现异步编程的过程
Jun 18 Javascript
通过JavaScript下载文件到本地的方法(单文件)
Mar 17 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
Oct 24 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
Jul 23 #Javascript
vue 地区选择器v-distpicker的常用功能
Jul 23 #Javascript
微信小程序 网络通信实现详解
Jul 23 #Javascript
微信小程序 确认框的实现(附代码)
Jul 23 #Javascript
koa2 从入门到精通(小结)
Jul 23 #Javascript
详解JavaScript 浮点数运算的精度问题
Jul 23 #Javascript
前端插件之Bootstrap Dual Listbox使用教程
Jul 23 #Javascript
You might like
phplot生成图片类用法详解
2015/01/06 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
laravel自定义分页的实现案例offset()和limit()
2019/10/15 PHP
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
如何使用jquery easyui创建标签组件
2015/11/18 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
Python实现二维数组输出为图片
2018/04/03 Python
树莓派实现移动拍照
2019/06/22 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
毕业生如何写自我鉴定
2014/03/15 职场文书
课堂教学改革实施方案
2014/03/17 职场文书
奥运会口号
2014/06/13 职场文书
个人四风问题对照检查材料
2014/10/01 职场文书
MySQL 隔离数据列和前缀索引的使用总结
2021/05/14 MySQL
python数据可视化使用pyfinance分析证券收益示例详解
2021/11/20 Python
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python