微信自定义分享链接

4,728 阅读4分钟

需求说明

在微信里向朋友分享网页链接时,设置链接相关信息的卡片上面的标题、描述 和 图片;

具体操作

针对 从微信内部分享出去 的链接(具体操作为:浏览页面时,通过右上角 三个点 的菜单按钮,调出下方菜单,将页面分享出去):

  • 标题 title 能

链接信息里,标题会自动获取该链接页面的<head>标签内的title信息:

<title>文章标题/页面标题</title>
  • 图片 img

链接信息右侧有一张缩略图,微信的机制是获取页面中第一张 300*300 以上的 可见图片

1.图片大小在 300px*300px 以上,为了效果好,最好是正方形

2.图片本身要是 可见 的,但是如果不想在页面中展示这张图片,可以在图片外层包一个 div,将其设置为隐藏。

<div style="display:none;">
    <img src="share.png">
</div>
  • 描述 desc 不能

链接信息标题下方是网页描述,这一块内容在微信里默认显示为 网页的链接地址

www.google.com

并且无法通过前端人员自主在页面中编写 html,js 等修改,只能借助微信提供的 微信JS-SDK 才能实现对描述内容的自定义。

如果是在 QQ 里对网页进行分享的话,对于描述内容可以通过 标签进行设置:

<meta name="description" content="在 QQ 里分享链接,链接的描述默认选用这个标签的 content 内容">

补充:

注意: qq里分享网页,标题描述图片 怎么设置呢?

<meta itemprop="name" content="这是分享的标题"/>
<meta itemprop="image" content="http://imgcache.qq.com/qqshow/ac/v4/global/logo.png" />
<meta name="description" itemprop="description" content="这是要分享的内容" />

微信JS-SDK 实现对描述内容的自定义

官方文档

一、绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 备注:登录后可在“开发者中心”查看对应的接口权限。

二、引入JS文件

在需要调用JS接口的页面引入如下JS文件,(支持https):res.wx.qq.com/open/js/jwe…

如需进一步提升服务稳定性,当上述资源不可访问时,可改访问:res2.wx.qq.com/open/js/jwe… (支持https)。

备注:支持使用 AMD/CMD 标准模块加载方法加载

三、通过config接口注入权限验证配置

所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。

wx.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数            ,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: '', // 必填,公众号的唯一标识
  timestamp: , // 必填,生成签名的时间戳
  nonceStr: '', // 必填,生成签名的随机串
  signature: '',// 必填,签名
  jsApiList: [] // 必填,需要使用的JS接口列表
});

四、通过ready接口处理成功验证

wx.ready(function(){
  // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});

五、通过error接口处理失败验证

wx.error(function(res){
  // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});