需求说明
在微信里向朋友分享网页链接时,设置链接相关信息的卡片上面的标题、描述 和 图片;
具体操作
针对 从微信内部分享出去 的链接(具体操作为:浏览页面时,通过右上角 三个点 的菜单按钮,调出下方菜单,将页面分享出去):
- 标题 title 能
链接信息里,标题会自动获取该链接页面的<head>标签内的title信息:
<title>文章标题/页面标题</title>
- 图片
img能
链接信息右侧有一张缩略图,微信的机制是获取页面中第一张 300*300 以上的 可见图片:
1.图片大小在 300px*300px 以上,为了效果好,最好是正方形;
2.图片本身要是 可见 的,但是如果不想在页面中展示这张图片,可以在图片外层包一个 div,将其设置为隐藏。
<div style="display:none;">
<img src="share.png">
</div>
- 描述
desc不能
链接信息标题下方是网页描述,这一块内容在微信里默认显示为 网页的链接地址:
并且无法通过前端人员自主在页面中编写 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可以在这里更新签名。
});