微信自定义分享限制分享
微信自定义分享&限制分享
一、微信自定义分享
【 (* ̄︶ ̄)微信官方文档 】
业务需求:
开发过程中有些业务需要借助微信进行推广和宣传。难免需要使用微信提供的一些功能,比如微信的二次分享(也叫微信自定义分享)功能来方便用户查阅和了解。微信公众号提供的自定义分享功能涉及的模块主要有以下几类:
- 自定义“分享给朋友”及“分享到QQ”(1.4.0);
- 自定义“分享到朋友圈”及“分享到QQ空间”(1.4.0);
- 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口。
【提示】:新版的微信自定义分享相对【即将废弃】的自定义分享api来说简洁了好多,处理起来相比旧版自定义分享来说少了许多代码;提高了代码的复用性。
微信自定义分享代码:
let WeChatPay = function() {// 2、引入js后、获取公众号校验信息let timestamp = '',nonceStr = '',signature = '';// 用于换取微信校验信息的参数:要求不可以包含 “#” 号let v = {url: location.split('#')[0]};// 3、通过config接口注入权限验证配置(需要同步进行,在获取到校验信息后方可注入config,否则校验失败!)wx.config({debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: '', // 必填,公众号的唯一标识timestamp: , // 必填,生成签名的时间戳nonceStr: '', // 必填,生成签名的随机串signature: '', // 必填,签名jsApiList: ["checkJsApi","onMenuShareAppMessage","onMenuShareTimeline","updateAppMessageShareData","updateTimelineShareData"] // 必填,需要使用的JS接口列表});// 4、通过ready接口处理成功验证wx.ready(function() {// 【备注:checkJsApi接口是客户端6.0.2新引入的一个预留接口,第一期开放的接口均可不使用checkJsApi来检测。】wx.checkJsApi({jsApiList: ["onMenuShareAppMessage","onMenuShareTimeline","updateAppMessageShareData","updateTimelineShareData"], // 需要检测的JS接口列表,所有JS接口列表见附录2,success: function(res) {}});// 1.0版本的微信分享已经被废弃,为了兼容老版本写法如下// 自定义“分享给朋友”及“分享到QQ”按钮的分享内容if (wx.onMenuShareAppMessage) {wx.onMenuShareAppMessage({title: '', // 分享标题desc: '', // 分享描述link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: '', // 分享图标success: function() {} // 设置成功});} else {// 自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)wx.updateAppMessageShareData({title: '', // 分享标题desc: '', // 分享描述link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: '', // 分享图标success: function() {} // 设置成功});}if (wx.onMenuShareTimeline) {wx.onMenuShareTimeline({title: '', // 分享标题link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: '', // 分享图标success: function() {} // 设置成功});} else {// 自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容(1.4.0)wx.updateTimelineShareData({title: '', // 分享标题link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: '', // 分享图标success: function() {} // 设置成功});}});
}
【注】:此写法是为了兼容旧版的微信自定义分享功能。因为有些老用户没有升级微信或者没有升级最新版的【JS-SDK】,因此会导致老旧代码微信分享失败。若不考虑兼顾老版本可以舍弃【 if 】中的代码块,直接采用【else】中的代码块。
二、限制分享【微信界面操作】
业务需求:
在开发过程中,难免会有一些特殊的要求,如:要求此次推广活动只能在微信中打开,限制微信用户分享给好友,限制分享到微信朋友圈等等。当遇到这些业务需求的时候就需要特定的操作来做一些限制了。微信浏览器右上角的的三个点,点开时下方弹出的操作按钮是可以做限制处理的,这就是在根上处理了限制微信用户分享的问题。
界面操作API:
// 1、关闭当前网页窗口接口
wx.closeWindow();// 2、批量隐藏功能按钮接口
wx.hideMenuItems({menuList: [] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
});// 3、批量显示功能按钮接口
wx.showMenuItems({menuList: [] // 要显示的菜单项,所有menu项见附录3
});// 4、隐藏所有非基础按钮接口
wx.hideAllNonBaseMenuItem();// 5、显示所有功能按钮接口
wx.showAllNonBaseMenuItem();
附录3:菜单列表:
【 基本类 】
举报 | “menuItem:exposeArticle” |
---|---|
调整字体 | “menuItem:setFont” |
日间模式 | “menuItem:dayMode” |
夜间模式 | “menuItem:nightMode” |
刷新 | “menuItem:refresh” |
查看公众号(已添加) | “menuItem:profile” |
查看公众号(未添加) | “menuItem:addContact” |
【 传播类 】
发送给朋友 | “menuItem:share:appMessage” |
---|---|
分享到朋友圈 | “menuItem:share:timeline” |
分享到QQ | “menuItem:share:qq” |
分享到Weibo | “menuItem:share:weiboApp” |
收藏 | “menuItem:favorite” |
分享到FB | “menuItem:share:facebook” |
分享到 QQ 空间 | “menuItem:share:QZone” |
【 保护类 】
编辑标签 | “menuItem:editTag” |
---|---|
删除 | “menuItem:delete” |
复制链接 | “menuItem:copyUrl” |
原网页 | “menuItem:originPage” |
阅读模式 | “menuItem:readMode” |
在QQ浏览器中打开 | “menuItem:openWithQQBrowser” |
在Safari中打开 | “menuItem:openWithSafari” |
邮件 | “menuItem:share:email” |
一些特殊公众号 | “menuItem:share:brand” |
代码实例:
let RestrictedBtn = function() {// 2、引入js后、获取公众号校验信息let timestamp = '',nonceStr = '',signature = '';// 用于换取微信校验信息的参数:要求不可以包含 “#” 号let v = {url: location.split('#')[0]};// 3、通过config接口注入权限验证配置(需要同步进行,在获取到校验信息后方可注入config,否则校验失败!)wx.config({debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: '', // 必填,公众号的唯一标识timestamp: , // 必填,生成签名的时间戳nonceStr: '', // 必填,生成签名的随机串signature: '', // 必填,签名jsApiList: ["checkJsApi", "hideMenuItems", "updateAppMessageShareData", "updateTimelineShareData"] // 必填,需要使用的JS接口列表});// 4、通过ready接口处理成功验证wx.ready(function() {// 微信界面限制// 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮wx.hideMenuItems({menuList: ["menuItem:share:qq", // 分享到QQ"menuItem:share:weiboApp", // 分享到Weibo"menuItem:favorite", // 收藏"menuItem:share:facebook", // 分享到FB"menuItem:share:QZone", // 分享到 QQ 空间"menuItem:openWithQQBrowser", // 在QQ浏览器中打开"menuItem:openWithSafari", // 在Safari中打开"menuItem:share:email", // 邮件"menuItem:copyUrl" // 复制链接});// 校验APIwx.checkJsApi({jsApiList: ["updateAppMessageShareData", "updateTimelineShareData"], // 需要检测的JS接口列表,所有JS接口列表见附录2,success: function(res) {}});});}
微信自定义分享限制分享相关推荐
- android sdk引入 微信分享_android 调用本地微信自定义多图分享朋友圈,可放在share sdk中一起使用...
最终的效果图,右下角微信多图为自定义调用系统分享,分享到微信. 在你能正常调用share sdk的时候想在原本的基础上加自定义的分享非常的简单. 它的官网已经给出了代码,但是给的不是很清楚. lz毕竟 ...
- android微信自定义分享代码,android 调用本地微信自定义多图分享朋友圈,可放在share sdk中一起使用...
最终的效果图,右下角微信多图为自定义调用系统分享,分享到微信. 在你能正常调用share sdk的时候想在原本的基础上加自定义的分享非常的简单. 它的官网已经给出了代码,但是给的不是很清楚. lz毕竟 ...
- 微信自定义分享卡片链接的解决方案(可自定义标题 描述 图片)
微信自定义分享卡片链接的解决方案(可自定义标题 描述 图片) 参考文章: (1)微信自定义分享卡片链接的解决方案(可自定义标题 描述 图片) (2)https://www.cnblogs.com/rg ...
- uniapp 实现微信小程序全局分享及自定义分享按钮样式
uniapp 实现微信小程序的全局 转发给好友/分享到朋友圈 的功能.主要使用 Vue.js 的 全局混入 概念. 下面直接上 实现步骤和代码: 创建全局分享内容文件 1.创建一个全局分享的 js 文 ...
- 微信公众号分享配置无效。。分享出来的只是纯链接了,如何自定义微信公众号的分享
微信公众号分享配置无效..分享出来的只是纯链接了 挺久没接微信公众号的项目开发了,最近突然接了一个,结果微信自定义分享给我整懵了.原本配置的好好的,屡试不爽的代码,居然死活不生效,开启debug,开发 ...
- 微信自定义分享功能实现
微信自定义分享功能实现 微信自定义分享功能实现 一.实现的关键 1.后端的任务 2.前台的任务 二.实现具体步骤 1.js安全域名配置(被分享的网址必须实现) 2.添加服务器配置(成为开发者) 3.生 ...
- 微信自定义分享功能二次封装
我原本是纯后端开发,但是最近因为工作原因,做了微信公众号的二次开发,说实话写H5调CSS调得头大,还是得术业有专攻才行.话不多说,因为要做微信自定义分享,网上其实已经有很多轮子了,但是100个人就有1 ...
- 微信自定义分享--失效问题
微信自定义分享 微信自定义分享到朋友圈/朋友失效问题 微信自定义分享到朋友圈 wx.onMenuShareTimeline({title: '', // 分享标题link: '', // 分享链接,该 ...
- 微信自定义分享ios无效
微信自定义分享无效情况有很多种,这里记录开发中遇到的一种 分享链接包含汉字 在自定义分享中,分享链接包含汉字,且没有进行编码处理,会导致ios无效:因为Android会自行进行处理,ios却不会,导致 ...
- 微信自定义分享pc正常手机不正常
微信自定义分享pc正常手机不正常,经排查后发现微信自定义分享的链接不能直接使用授权链接.因此我的解决方法是,新建一个页面用于授权.就解决啦
最新文章
- redmine升级了 ,6与18日同时发布2.0.3和1.4.4
- 未来,机器人帮你盖房子
- python 字符串形式的列表 转 列表
- 【学习笔记】springboot的过滤器与拦截器的使用 springboot的事件驱动模型
- Android安全与逆向之Dex动态加载
- Linux 系统中 Redis 的安装及其使用
- 中专学历就该被拒之门外?做Java开发改变命运难吗?
- spring ioc控制反转
- nginx request_uri接收到的参数只有一个
- ce标志cad_CAD自定义快捷键+常用符号
- 金融科技成为服贸会热议话题:数字化转型中如何保障金融安全
- 一次分布式架构cms系统页面静态化模块开发经历
- G1垃圾回收器在并发场景调优
- 【CQF Math Class 数学笔记】
- 爬取京东图书价格信息分析
- idea合并分支只合并某次提交的代码
- JustLaws 法律文库贡献指南
- 路由器wan和lan口
- Oracle中一个汉字占几个字节
- Burp Suite进行账号密码爆破