使用微信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 相关文章推荐
不一样的文字闪烁 轮番闪烁
Nov 11 Javascript
js判断上传文件的类型和大小示例代码
Oct 18 Javascript
详解JavaScript中的forEach()方法的使用
Jun 08 Javascript
纯javascript实现图片延时加载方法
Aug 21 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
Sep 26 Javascript
vue2 自定义动态组件所遇到的问题
Jun 08 Javascript
JavaScript简介_动力节点Java学院整理
Jun 26 Javascript
angularjs实现柱状图动态加载的示例
Dec 11 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
layui-table对返回的数据进行转变显示的实例
Sep 04 Javascript
vue 输入电话号码自动按3-4-4分割功能的实现代码
Apr 30 Javascript
微信小程序实现导航栏和内容上下联动功能代码
Jun 29 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
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
PHP设置Cookie的HTTPONLY属性方法
2017/02/09 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
2013/05/19 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
AngularJs中route的使用方法和配置
2016/02/04 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
2016/12/15 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
微信小程序Page中data数据操作和函数调用方法
2019/05/08 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
python中global用法实例分析
2015/04/30 Python
Python读取sqlite数据库文件的方法分析
2017/08/07 Python
对Python中的@classmethod用法详解
2018/04/21 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
生物技术毕业生自荐信
2013/10/23 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
法律进学校实施方案
2014/03/15 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
环保小标语
2014/06/13 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
仅用几行Python代码就能复制她的U盘文件?
2021/06/26 Python
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL