使用微信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 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
Oct 11 Javascript
javascript学习笔记(五) Array 数组类型介绍
Jun 19 Javascript
用javascript删除当前行,添加行(示例代码)
Nov 25 Javascript
jQuery插件实现大图全屏图片相册
Mar 14 Javascript
JavaScript简单下拉菜单特效
Sep 13 Javascript
Bootstrap中datetimepicker使用小结
Dec 28 Javascript
你不知道的 javascript【推荐】
Jan 08 Javascript
json前后端数据交互相关代码
Sep 19 Javascript
小程序实现左右来回滚动字幕效果
Dec 28 Javascript
JS函数节流和防抖之间的区分和实现详解
Jan 11 Javascript
vue cli安装使用less的教程详解
Jul 12 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
Aug 31 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
全国FM电台频率大全 - 28 甘肃省
2020/03/11 无线电
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
Less 安装及基本用法
2018/05/05 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python多重继承实例
2014/10/11 Python
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
Python操作使用MySQL数据库的实例代码
2017/05/25 Python
python版本单链表实现代码
2018/09/28 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
2020/06/05 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
材料采购员岗位职责
2013/12/17 职场文书
11月升旗仪式讲话稿
2014/02/15 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
关于MySQL中explain工具的使用
2023/05/08 MySQL