使用微信SDK自定义分享的方法


Posted in Javascript onJuly 03, 2019

一、背景介绍

在微信中打开自己网站的链接,经常会变成下面这样

使用微信SDK自定义分享的方法

不太好看有木有,如果你想在分享出来的东西带上你的logo,带上你想要的描述,怎么办,像下面这样

使用微信SDK自定义分享的方法

这就需要用到微信的分享SDK,文档链接:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

二、微信SDK使用说明第一步

第一步

先要在微信公众平台上注册一个微信公众号,还必须要是认证的企业或组织,流程走下来大概要个两三天的时间吧,只有认证了的公众号才有分享SDK的权限,个人的不行,这个比较麻烦。账号申请成功后会有AppID和AppSecret,这个相当于你公众号的秘钥,第二步需要用到。然后在JS接口安全域名中加入你调微信SDK时的页面的地址,不支持IP地址、端口号及短链域名,只能写域名,不用加http啥的,在设置了安全域名的路径下才能够成功调SDK。

第二步

需要一个获取签名的接口,这个可以找RD帮忙操作,请求接口的时候带上URL(必须和你当前的URL一致),然后让RD好好研读下如何通过公众号的AppID和AppSecret获取到token及签名等信息,接下来就可以愉快的调用微信的分享SDK了。

第三步

获取到签名之后在HTML中引入

<script typet="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>

引入后在代码中调用分享SDK

window.wx.config({
    appId: res.data.appId, //res.data为请求签名接口返回数据
    timestamp: res.data.timestamp,
    nonceStr: res.data.nonceStr,
    signature: res.data.signature,
    jsApiList: [
      'checkJsApi',
      'updateAppMessageShareData',
      'updateTimelineShareData'
    ]
  });
  const shareConfig = {
    'imgUrl': '你想展现的图标',
    'desc': '你想展现的描述',
    'title': '你想展现的title',
    'link': window.location.href,
    'success': function () {
      console.log('成功了!');
    },
    'cancel': function () {
      console.log('取消');
    }
  };
  window.wx.ready(function () {
    window.wx.updateAppMessageShareData(shareConfig);
    window.wx.updateTimelineShareData(shareConfig);
  });

OK!大功告成,现在就可以按你的想法分享内容了,但是如何在本地测试是否成功呢?我们刚才也说了只能在安全域名下才能调用成功,所以Charles就派上大用场了。。。把安全域名代理到本地,然后可以在微信开发者工具上面自测一下,没问题了上真机,iOS和安装都要试一下,会有惊喜。

三、坑及总结

在自测了没问题之后上线了。。。结果发现iOS的手机获取签名失败,报invalid signature,后来排查发现在iOS的微信里面如果从其他页面跳转到你要分享的页面window.location.href是不会变的。。。也就是说你发请求去获取签名时候传给后端的URL和你当前的URL是不一致的,所以导致签名获取失败。这个解决办法很多,可以把前一个页面的URL拿去获取签名,只要保持一致就是OK的。

好了 先写这么多。。。

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

Javascript 相关文章推荐
在页面上点击任一链接时触发一个事件的代码
Apr 07 Javascript
javascript之可拖动的iframe效果代码
Aug 01 Javascript
jquery.validate使用攻略 第二部
Jul 01 Javascript
js的一些常用方法小结
Jun 29 Javascript
jquery获取div宽度的实现思路与代码
Jan 13 Javascript
jquery教程ajax请求json数据示例
Jan 13 Javascript
jquery库文件略庞大用纯js替换jquery的方法
Aug 12 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
Jul 27 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
Jan 12 Javascript
基于vue的短信验证码倒计时demo
Sep 13 Javascript
node+multer实现图片上传的示例代码
Feb 18 Javascript
react项目从新建到部署的实现示例
Feb 19 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
Jul 03 #Javascript
8 个有用的JS技巧(推荐)
Jul 03 #Javascript
vue swipe自定义组件实现轮播效果
Jul 03 #Javascript
20个必会的JavaScript面试题(小结)
Jul 02 #Javascript
微信小程序如何调用新闻接口实现列表循环
Jul 02 #Javascript
Angular.JS读取数据库数据调用完整实例
Jul 02 #Javascript
js实现for循环跳过undefined值示例
Jul 02 #Javascript
You might like
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
php 多文件上传的实现实例
2016/10/23 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
判断js的Array和Object的实现方法
2016/08/29 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
javascript判断firebug是否开启的方法
2016/11/23 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
2018/09/30 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
Python使用getpass库读取密码的示例
2017/10/10 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
在Python中COM口的调用方法
2019/07/03 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
什么是跨站脚本攻击
2014/12/11 面试题
Shell如何接收变量输入
2016/08/06 面试题
《小小雨点》教学反思
2014/02/18 职场文书
法律进企业活动方案
2014/03/04 职场文书
安全保证书
2015/01/16 职场文书
公司放假通知范文
2015/04/14 职场文书
胡桃夹子观后感
2015/06/11 职场文书
2016年习主席讲话学习心得体会
2016/01/20 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
vue+springboot实现登录验证码
2021/05/27 Vue.js
Python语言中的数据类型-序列
2022/02/24 Python
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技