使用微信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 相关文章推荐
javascript 动态参数判空操作
Dec 22 Javascript
分享Javascript实用方法二
Dec 13 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
Feb 14 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
Mar 03 Javascript
easyui-datagrid开发实践(总结)
Aug 02 Javascript
js生成word中图片处理方法
Jan 06 Javascript
微信小程序自定义轮播图
Nov 04 Javascript
Vue中用props给data赋初始值遇到的问题解决
Nov 27 Javascript
详解vue为什么要求组件模板只能有一个根元素
Jul 22 Javascript
vue 通过绑定事件获取当前行的id操作
Jul 27 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
Aug 10 Javascript
JavaScript日期库date-fn.js使用方法解析
Sep 09 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
收音机指标测试方法及仪器
2021/03/01 无线电
C# Assembly类访问程序集信息
2009/06/13 PHP
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
php实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
PHP中关键字interface和implements详解
2017/06/14 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
浅谈Angular4实现热加载开发旅程
2017/09/08 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
python创建关联数组(字典)的方法
2015/05/04 Python
Python变量和字符串详解
2017/04/29 Python
transform python环境快速配置方法
2018/09/27 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
opencv python如何实现图像二值化
2020/02/03 Python
python用opencv完成图像分割并进行目标物的提取
2020/05/25 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
岗位职责说明书
2014/05/07 职场文书
家长会欢迎标语
2014/06/24 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书