一、微信自定义分享

业务需求:

开发过程中有些业务需要借助微信进行推广和宣传。难免需要使用微信提供的一些功能,比如微信的二次分享(也叫微信自定义分享)功能来方便用户查阅和了解。微信公众号提供的自定义分享功能涉及的模块主要有以下几类:

获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口。

【提示】:新版的微信自定义分享相对【即将废弃】的自定义分享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" // 复制链接

});

// 校验API

wx.checkJsApi({

jsApiList: ["updateAppMessageShareData", "updateTimelineShareData"], // 需要检测的JS接口列表,所有JS接口列表见附录2,

success: function(res) {}

});

});

}

微信分享自定义图标大小限制_微信自定义分享限制分享相关推荐

  1. 微信小程序设置字体无效_微信小程序自定义字体及自定义图标问题说明

    自定义图标及自定义字体,一直是很多小程序开发者的心病,其实本站是很多解决方案的,为了集中起来,方便直接跳过此坑,我特别做了这次针对字体及字体图标的跳坑: 相关讨论: Q:小程序开发时能否使用我们自定义 ...

  2. 小程序分享到朋友圈功能_微信小程序开放分享到朋友圈功能

    2020年7月7日(据说是6日深夜),一个很特别的日子,微信低调地放开了一个功能:微信小程序"分享到到朋友圈",这个看似微小的变化,对微信小程序来说意义重大. 用fenng大的话说 ...

  3. python微信爬取教程_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  4. 微信小程序动态更改标题栏_微信小程序实现动态设置页面标题的方法【附源码下载】...

    本文实例讲述了微信小程序实现动态设置页面标题的方法.分享给大家供大家参考,具体如下: 1.效果展示 2.关键代码 ① WXML文件 标题1 标题2 标题3 还原 ② JS文件 Page({ // 设置 ...

  5. 微信小程序超级占内存_微信小程序占用内存小,用户再也不用担心内存不足问题了...

    内存占用小,微信小程序,让用户再也不用担心小程序不足内存问题了,时下,一站式支持常用APP(手机应用软件)的微信小程序受到市民青睐. 微信小程序,是一种不需要下载安装即可使用的应用,它实现了应用&qu ...

  6. java微信无感支付怎么开通_微信无感支付怎么设置?方法介绍

    随着微信支付在我们日常生活中的不断普及,微信更是不负众望,相继推出了很多新功能,这段时间,微信无感支付让很多用户交口称赞,无数的车主朋友都微信无感支付体验到了快速支付通行费的方便.那么,你知道微信无感 ...

  7. url 微信公众号开发 配置失效_微信公众号开发之授权登录

    一.UnionId和openId 微信登录最重要的两个返回信息,一个是UnionId,一个是OpenId.两者之间有着必然的联系. UnionID机制的作用说明:如果开发者拥有多个移动应用.网站应用和 ...

  8. 微信文件撤回时间多长_微信消息怎么撤回?撤回时间限制是多久?

    微信作为大家日常生活中必备的聊天工具,相信大家的微信联系人里面,已经存在了大批量的人员,同样大家也加入了不少的微信群,在人员众多的微信通讯录里面,大家在进行微信聊天操作的时候,难免出现将消息发错的情况 ...

  9. 苹果微信更新不了最新版本_微信最新版本可以更改微信号了!还有大量功能更新!...

    文字编辑:XC丨插图来自于网络 微信可以改账号了? 近日有不少用户表示,微信在近期更新的 安卓版本 微信7.0.15出现了更改微信号的页面. 已经有不少朋友向 XC 截图了安卓微信版本这个功能页面的截 ...

  10. java微信无感支付怎么开通_微信无感支付开通流程,要怎么停车

    微信无感支付,根据不同的应用场景会有所不同,高速通行与其他应用场景的停车缴费,所开通的入口会有所不一样,这里以高速停车,和近日深圳机场停车场为例来说明. 微信"无感支付"高速通行开 ...

最新文章

  1. Kali Linux 秘籍 翻译完成!
  2. vim 基本操作总结
  3. Part Five 音视频API
  4. 插件开发之360 DroidPlugin源码分析(一)初识
  5. NFine框架因新增页面而显示无法链接资源
  6. Python编程求100内的所有素数(详解版)
  7. ANSYS workbench 有限元分析 学习
  8. 传奇服务器修改二级密码,找回传奇玩家账号和二级密码,修改密码和密保
  9. linux 安装Julia
  10. linux 查看上一级目录,du 使用详解 查看一级目录大小
  11. UOS 安装腾讯会议的踩坑记录
  12. 腾讯域名申请、腾讯备案以及公安备案过程记录
  13. 腾讯CEO马化腾:从“抄袭”开始创业之路
  14. 利用xposed自动获得支付宝个人收款二维码链接和收款记录
  15. 务实java基础之集合总结
  16. Adobe Photoshop快捷键_艾孜尔江摘录
  17. E. Tournament
  18. Stata数据处理:xtbalance-非平衡面板之转换
  19. csdn活动:免费领取会员啦!
  20. numpy API 速查手册

热门文章

  1. 基于IAAS和SAAS的运维自动化-张克琛
  2. speedpdf——PDF转PPT免费在线转换还不限制页数哦
  3. marked转换html失败,解析markdown之marked
  4. 衡水二中2021清华北大高考成绩查询,衡水二中:把5分钟利用成2小时,清北再录取101人!...
  5. 关于微信投票刷票的js代码
  6. unity使用easy ar制作ar红包
  7. Helio X30剩魅族一家客户 联发科恢复元气要一年半
  8. 流式Json数据生成器
  9. MML ch 10 主成分分析降维(Dimensionality Reduction with Principal Component Analysis)
  10. 创建student-dissertation数据库