微信小程序 转发 分享功能(二)

article/2025/11/3 23:04:12

关于小程序的转发:

最简单的就是点击小程序右上角菜单“转发”按钮直接分享,不过这种分享有点不太友好,实用性也不强。

当然,你可以自定义分享内容,包括标题,简介,图片及分享的小程序页面路径。

再高级一点,还可以对转发出去的小程序被二次打开的时候获取到一些信息。

一. 自定义转发内容:

onShareAppMessage(Obj):

1. 监听转发按钮(button open-type="share")或小程序右上角“转发”按钮的点击行为;
2. 自定义转发分享内容。
3. 还可以监听这些信息:
示例代码:
复制代码
  /*** 用户分享自定义*/onShareAppMessage: function(res) {return {title: '哈根达斯冰激凌5折特惠',path: '/pages/index/index?goods_id=' + wx.getStorageSync("goods_id"),imageUrl: 'http://static.e-mallchina.com/pic/product/brand/detail/hgds.jpg'//自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径。支持PNG及JPG。显示图片长宽比是 5:4。}}
复制代码

点击右上角菜单中的“转发”按钮,分享效果如下:

二. 点击页面按钮分享转发:

<button> 组件设置 open-type="share"即可实现页面内分享,点击按钮即可跟点击右上角菜单中的转发按钮会有一样的效果。

<button open-type='share' type='warn' size="mini" plain="true" id='btnShare0'>推荐给好友</button>

当然,跟右上角菜单中的转发按钮一样,如果设置了自定义转发内容,点击分享按钮也会展示自定义分享内容的。

三. 关闭分享功能:

wx.hideShareMenu(Object object):隐藏转发按钮,关闭转发功能(不影响转发按钮的功能,只是右上角分享没有了)。
复制代码
  /*** 生命周期函数--监听页面加载*/onLoad: function(options) {wx.hideShareMenu()},/*** 生命周期函数--监听页面显示*/onShow: function() {wx.hideShareMenu()},
复制代码

 

四. 获取更多转发信息:

转发出去的小程序被二次打开的时候能够获取到一些信息,例如群的标识。

大致流程:

1. 通过调用 wx.showShareMenu 并且设置 withShareTicket 为 true ;
2. 当用户将小程序转发到任一群聊之后, 此转发卡片在群聊中被其他用户打开时,可以在 App.onLaunch 或 App.onShow 获取到一个 shareTicket;
3. 通过调用 wx.getShareInfo() 接口传入此 shareTicket 可以获取到转发信息。

示例代码:

复制代码
  //分享页面设置开启分享群信息/*** 生命周期函数--监听页面加载*/onLoad: function(options) {wx.showShareMenu({withShareTicket: true})},/*** 生命周期函数--监听页面显示*/onShow: function() {wx.showShareMenu({withShareTicket: true})}
复制代码
复制代码
//app.js 获取小程序名片页附带的分享信息
App({onLaunch: function(ops) {//小程序在群里被打开后,获取情景值和shareTicketconsole.log("ops:", ops)if (ops.scene==1044) {wx.getShareInfo({shareTicket: ops.shareTicket,success:function(res) {console.log("wx.getShareInfo:::", res)}})}}
})
复制代码

分享到群里之后,在群里打开小程序,获取类似下面的数据:

如上图,获取的就是分享到的群聊的相关信息了,不过这个信息是加密的,需要像获取手机号一样再去后端解密才可以。

其中 encryptedData 解密后为以下 json 结构,详见加密数据解密算法。其中 openGId 为当前群的唯一标识:

{
"openGId": "OPENGID"
}
如需要展示群名称,可以使用 开放数据组件。

经验证,这个功能只有在分享到群聊中才会有效,也就是说只能区分小程序是在群中还是好友聊天窗口中打开的,所以这个功能是比较鸡肋的。

五. 其他一些功能:

还有一个接口,就是更新转发属性的接口:wx.updateShareMenu(Object object),平常用的不多,感兴趣的可以自行去官网研究。

 

 

来源地址:https://www.cnblogs.com/xyyt

http://chatgpt.dhexx.cn/article/xkkX3EWd.shtml

相关文章

微信小程序转发中文出现乱码

微信小程序转发中文出现乱码 在开发项目的过程中出现转发bug&#xff0c;转发给其他用户时点开界面出现乱码 界面参数由父界面传输 原因 在网上查了一圈&#xff0c;是说微信小程序的编码方式并非UTF8&#xff0c;所以导致出现乱码 解决方案 使用Js的decodeURI&#xff0…

微信小程序转发动态消息的问题

最近项目中需要用到微信小程序转发动态消息的功能&#xff0c;遇到了一些坑&#xff0c;最终测试成功了&#xff0c;现在分享给大家。 微信官方的动态消息参考文档在这里&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share/updatabl…

关于小程序转发分享功能,并实现计数埋点方式

小程序分享 前言思路关于分享关于计数埋点 效果使用page分享全局分享单页分享 使用Component组件分享全局分享单页面分享 计数埋点 前言 之前做的分享都是单页面分享&#xff0c;现在发现公司需要做所有页面的分享&#xff0c;然后指定页面和全局不一样&#xff0c;并且实现记…

微信小程序转发

微信小程序转发涉及以下4个方法: 1、Page.onShareAppMessage({}) 设置右上角“转发”配置,及转发后回调函数返回 shareTicket 票据 2、wx.showSahreMenu() 用户点击右上角后,显示“转发”按钮 3、wx.hideShareMenu() 隐藏转发按钮,无视 Page.onShareAppMessage({}) …

(干货)微信小程序转发好友

今天简单地说下微信小程序的转发功能&#xff0c;为什么要简单的说下呢&#xff0c;因为主要讲的就是转发给好友或者群组&#xff0c;还有一种是分享到朋友圈&#xff0c;这种就比较复杂一点了&#xff0c;先稍微透漏一点&#xff0c;分享到朋友圈主要是两种方法&#xff0c;一…

微信小程序 转发

微信小程序的转发分两张情况 1.自定义的转发按钮 2.小程序自带的右上角的转发按钮 小程序 API https://developers.weixin.qq.com/miniprogram/dev/api/share.html 下图是自定义的转发按钮 xml <view classfl stylewidth:55rpx;height:55rpx;margin-left:50%; margin…

小程序分享功能实现php,微信小程序转发好友的功能

今天简单地说下微信小程序的转发功能&#xff0c;为什么要简单的说下呢&#xff0c;因为主要讲的就是转发给好友或者群组&#xff0c;还有一种是分享到朋友圈&#xff0c;这种就比较复杂一点了&#xff0c;先稍微透漏一点&#xff0c;分享到朋友圈主要是两种方法&#xff0c;一…

微信小程序转发朋友圈

微信小程序转发朋友圈 接触过微信小程序的都应该知道微信小程序只开辟了一个转发给好友和群的api&#xff0c;如果想发送到朋友圈&#xff0c;方法大同小异&#xff0c;无非就是保存图片到本机 然后在进行朋友圈发表&#xff0c;话不多说&#xff0c;先上图&#xff0c;然后上…

unapp微信小程序转发分享、携带参数

一、第一种方式&#xff1a; // 开启小程序原生右上角分享按钮uni.showShareMenu({// https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.htmlwithShareTicket: true,menus: [shareAppMessage, shareTimeline]//开启转发好友和转发朋友圈按钮});…

SQLServer2008 sa登录错误18456

基本每次重装数据库&#xff0c;使用sa身份和ip方式登录数据库&#xff0c;不出意外都会出现这个错误&#xff0c;18456&#xff0c;如下&#xff1a; 这个错误一般由三个原因引起&#xff0c;登录方式设置错误、sa设置错误和IP方式是否开启&#xff0c;下面依次解决这三个问题…

SQL Server2014“用户'sa'登录失败,错误18456”问题

子丰在安装SQL Server2014的过程中明明选择了使用Windows身份验证和SQL Server身份验证混合模式&#xff0c;可是安装完之后却不能使用SQL Server身份验证登录&#xff0c;提示“用户sa登录失败&#xff0c;错误18456”。 经过子丰一番研究才最终解决了问题。 1. 使用Windows身…

【SQL Server 2017】18456错误/管道的另一端无任何进程错误 解决方法

解决方法 windows身份登录后&#xff0c;找到&#xff1a;安全性->登录名->sa&#xff0c;然后右击选择属性 选择常规&#xff08;输入新的密码&#xff0c;取消实施密码策略&#xff09; 右击服务器名——重新启动——关闭数据库连接&#xff0c;退出程序——用sa登录…

SQL 18456登陆错误问题(已解决)

SQL 18456登陆错误 首先要将登陆验证方式改为混合验证 参考链接&#xff1a;https://blog.csdn.net/qq_34173893/article/details/80142959 解决方案&#xff1a;https://www.cnblogs.com/giserblog/p/3585442.html?utm_sourcetuicool 取消登陆锁定 如果遇到取消失败的情况&am…

SQLServer创建用户登录出现错误18456

使用SQLServer创建用户并登录的过程中总是出现问题&#xff0c;查找方法不易&#xff0c;于是就打算把解决方法写一下&#xff0c;方便后来的小伙伴查找 1、在本机数据库处右键&#xff0c;选择属性&#xff0c;点击打开 选择左侧的安全性&#xff0c;右侧服务器身份验证选择S…

SQLSERVER2008 18456错误

百度搜18456错误几乎只能搜到一篇文章&#xff0c;并不是说结果条数&#xff0c;而是所有的文章都是转自一处。我也遇到了18456错误。 我是这么解决的&#xff1a; 1、以windows验证模式进入数据库管理器。 第二步&#xff1a;右击sa&#xff0c;选择属性&#xff1a; 在常规选…

SQL Server 2008 R2用户'sa'登录失败(错误18456)

今天想把公司的数据库放到自己的电脑上&#xff0c;结果&#xff0c;登录SQL server 2008R2 报错了&#xff1a; 用Windows身份可以登录。为了能继续使用sa用户登录&#xff0c;可以这样做&#xff1a; 1、首先用widnows身份登录 2、右键实例-->属性&#xff0c; 3、选择【…

|- SQLServer 2012 -| 连接出现错误:18456

用户的创建和数据库的远程访问设置&#xff0c;详见连接&#xff1a; http://blog.csdn.net/QAC_Boy/article/details/75529153 今天在创建SQLServer用户进行授权后&#xff0c;想要测试一下&#xff0c;结果在数据库连接的时候&#xff0c;出现了18456错误&#xff1a; 但…

sqlserver登录失败18456解决方案

提示用户sa登录失败&#xff0c;microsoft server&#xff0c;错误&#xff1a;18456 解决方案&#xff1a; 1.用windows验证登入数据库 2.选择sa----属性 3.常规---更新密码&#xff0c;点击确定 4.状态---选择enable 5.点击用户状态&#xff0c;选择确定 6.右击选择确定 …

sql server 2019 用户‘sa‘登录失败(错误18456)解决方案图解

用户sa登录失败&#xff08;错误18456&#xff09;解决方案图解 当我们在使用sql server 的时候可能会遇见这样错误提示“无法连接到.,用户sa登录失败&#xff08;错误18456&#xff09;”, 如图&#xff1a; 具体的解决方案&#xff1a; 首先使用管理员身份打开SQL …

SQLserver .sa'登录失败(错误18456)图文解决方法

SQLserver .sa登录失败&#xff08;错误18456&#xff09;图文解决方法 有时候&#xff0c;电脑在使用过程中&#xff0c;会出现”SQL2008.sa登录失败“&#xff08;错误18456&#xff09;的提示&#xff0c;一脸懵逼的你遇到这种情况该怎么办呢&#xff1f;下面就来简单介绍一…