使用微信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进阶教程(第四课第一部分)
Apr 05 Javascript
javascript  Error 对象 错误处理
May 18 Javascript
JavaScript 解析Json字符串的性能比较分析代码
Dec 16 Javascript
js获取当前select 元素值的代码
Apr 19 Javascript
Javascript实现单张图片浏览
Dec 18 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
Mar 25 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
Nov 17 Javascript
详解js中==与===的区别
Jan 08 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
ES6 javascript的异步操作实例详解
Oct 30 Javascript
vue中使用element-ui进行表单验证的实例代码
Jun 22 Javascript
vue组件中传值EventBus的使用及注意事项说明
Nov 16 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的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
Node.js Sequelize如何实现数据库的读写分离
2016/10/23 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
Python列表(list)常用操作方法小结
2015/02/02 Python
python实现图书管理系统
2018/03/12 Python
python 内置模块详解
2019/01/01 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
python实现快递价格查询系统
2020/03/03 Python
python程序输出无内容的解决方式
2020/04/09 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
个人委托书范文
2015/01/28 职场文书
博士给导师的自荐信
2015/03/06 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
我的1919观后感
2015/06/03 职场文书
教育教学读书笔记
2015/07/02 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
解决pytorch读取自制数据集出现过的问题
2021/05/31 Python