资讯专栏INFORMATION COLUMN

微信分享自定义样式

darcrand / 3642人阅读

摘要:微信分享到朋友圈微信分享给朋友自定义图文信息本来效果预期效果参考微信开发者文档需要准备的通过微信认证的公众号有备案过的域名步骤后台需要实现的事情登录微信公众平台进入公众号设置的功能设置里填写接口安全域名调用的必须在接口安全域名可以登录后可

微信分享到朋友圈&微信分享给朋友自定义图文信息

本来效果:

预期效果:

参考:微信开发者文档js-sdk

需要准备的:

 **通过微信认证的公众号**
 **有备案过的域名**

步骤:

后台需要实现的事情:

1.登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”,(调用的url必须在js接口安全域名可以 )

2.登录后可在“开发者中心”查看对应的接口权限,认证过的公众号都可以调大多数接口。

3.生成js-sdk的权限签名:jsapi_ticket 参照js-sdk权限签名文档

前端需要干的事情:
1.在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/...
备注:支持使用 AMD/CMD 标准模块加载方法加载

2.前端通过发送请求获取签名权限或者后台语言嵌入html (题主公司直接用的内嵌php),因为签名权限出于安全问题只能通过后台实现

3.通过config接口注入权限验证配置,参数由后台提供,选项debug上线后记得设置成false

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

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

4.通过ready接口处理成功验证,验证失败进入error回调函数

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

5.通过error接口处理失败验证
验证失败可能是由于签名过期或者没有接收到等原因导致的

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

6.在ready函数里写分享的代码
请注意不要有诱导分享等违规行为,对于诱导分享行为将永久回收公众号接口权限
分享朋友圈代码:

//获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
wx.onMenuShareTimeline({
    title: "", // 分享标题
    link: "", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
    imgUrl: "", // 分享图标 这个图片地址需要填写绝对路径 www.xxx.com/images/xxx.jpg
    success: function () {
    // 用户确认分享后执行的回调函数
},
cancel: function () {
    // 用户取消分享后执行的回调函数
    }
});

分享给朋友代码

wx.onMenuShareAppMessage({
title: "", // 分享标题
desc: "", // 分享描述
link: "", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: "", // 分享图标  这个图片地址需要填写绝对路径 www.xxx.com/images/xxx.jpg
type: "", // 分享类型,music、video或link,不填默认为link
dataUrl: "", // 如果type是music或video,则要提供数据链接,默认为空
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});

自己写的时候碰到的bug:
因为前后端没有分离,在通过config接口注入权限验证配置时需要把js代码写在html文件中才能获取到参数,多带带写成一个js文件读取不到

以上就是全部代码,有错欢迎指出,看到就会改,希望能帮到你!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93077.html

相关文章

  • 定义微信分享样式

    摘要:博客地址产品希望我们在微信分享出去的链接,有自己的样式,而不是仅仅一个链接。接口更新的虽然微信文档上有接口更新的说明请注意,原有的接口,即将废弃。微信分享自定义样式微信分享图标设置,以及配置 博客地址 Preface 产品希望我们在微信分享出去的链接,有自己的样式,而不是仅仅一个链接。用产品的话来说,你发给客户一个链接,客户敢点么??? 听着比较有意思,不过也不能说完全没有道理,毕竟各...

    only_do 评论0 收藏0
  • 微信开发-定义分享卡片-node.js实现

    摘要:本篇主要讲述,如何在微信中打开自家的页面,在然后在用户分享的时候,能由我们自定义分享出去后,展示的页面卡片中的页面标题页面描述页面图片和分享链接。 本篇主要讲述,如何在微信中打开自家的页面,在然后在用户分享的时候,能由我们自定义分享出去后,展示的页面卡片中的页面标题、页面描述、页面图片和分享链接。 此功能,具体的来说,是: 在微信打开自家的页面 点击右上角微信的功能按钮,出现功能菜单...

    Object 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<