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

article/2025/11/3 10:09:29

一、第一种方式:

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

这里有个uni官方文档的bug,uni官方文档并没有说明uni.showShareMenu有menus配置项,但是微信官方文档是有的。所以加上也是会生效的。

注意:配置了此项,此种方式优先级要比第二种方式要高,所以采用第二种方式就不能配置第一种方式。

下面是uni的文档配置项:官方文档

微信官方配置项:官方文档

二、第二种方式(自定义转发分享)

//html
<view class="flex align-items justify-start order-tab" v-if="hasLogin"><view class="every-tab flex flex-direction align-items" style="position:relative;"><uni-icons custom-prefix="custom-icon" type="staff-filled" size="30" color="gray"></uni-icons><text class="font-12">购买分享</text><button id="shareBtn" open-type="share">购买分享(opicty透明)</button></view></view>
//scss
#shareBtn {position: absolute;z-index: 2;opacity: 0;width: 100%;height: 100%;
}
//js//分享到朋友圈onShareTimeline(res) {return {title: '妙智康商城小程序',// path: '/pages/home/index',不支持自定义页面路径// query:id=1,//自定义页面路径中携带的参数,如 path?a=1&b=2 的 “?” 后面部分// imageUrl: '/static/imgs/mylogo.png',}},// 自定义此页面的转发给好友(已经有全局的分享方法,此处会覆盖全局)onShareAppMessage(res) {return {title: '妙智康商城小程序',path: `/pages/home/index?id=${this.userInfo.userId}`,// imageUrl: '/static/imgs/mylogo.png'}},

需注意:onShareTimeline、onShareAppMessage事件是和onload、data、computed同级书写!

第二种方式,采用了button的open-type="share",然后隐藏这个button。scss代码主要是哪个opcity。不自定义转发图片的情况下,默认会取当前页面,从顶部开始,高度为 80% 屏幕宽度的图像作为转发图片。

onShareAppMessage:不设置path默认是打开的点击分享时的页面,不设置title,默认是小程序名字

onShareTimeline:不设置path默认是打开的点击分享时的页面,不设置title,默认是当前页面的标题

注意事项

  1. 不自定义转发图片的情况下,默认会取当前页面,从顶部开始,高度为 80% 屏幕宽度的图像作为转发图片。

  1. 转发的调试支持请查看 普通转发的调试支持 和 [带 shareTicket 的转发](../../devtools/different.md#带 -shareticket- 的转发)

  1. 转发非私密消息时,只有转发到群聊中打开才可以获取到 shareTicket 返回值,单聊没有 shareTicket。转发私密消息时,群聊和单聊都可获取到 shareTicket。私密消息详见 私密消息使用指南

  1. shareTicket 仅在当前小程序生命周期内有效

  1. 由于策略变动,小程序群相关能力进行调整,开发者可先使用 wx.getShareInfo 接口中的群 ID 进行功能开发。

  1. 微信7.0.12开始,支持群主转发小程序时同时把消息设为该群的群待办消息,群待办消息会以气泡形式出现在聊天窗口底部。默认每次转发一个群待办消息,都会生成一个待办消息气泡。通过 wx.updateShareMenu 接口修改toDoActivityId属性可以把多个待办消息聚合为同一个,即转发相同toDoActivityId的群待办消息,只会出现一个待办消息气泡。toDoActivityId需要在转发前通过 updatableMessage.createActivityId 接口创建。

还需要注意的是网上搜了很多资料都给onShareTimeline()配置了path这个选项。经踩坑,官方文档并没有这个配置项。如下图:官方文档链接

第二种方式的onShareAppMessage事件是可以自定义path路径,配置好后通过以下方式去获取

获取有两种方式(在path对应的页面去获取)

1.

onLoad: function (options) {console.log(options);//打印和option就可以看到path后面传递的参数}

2.

 onShow: async function () {let allPages = getCurrentPages(); //获取当前页面栈的实例(onshow的option是undefined)let page = allPages[allPages.length - 1]let option = page.optionsconsole.log("option", option);}

三、统一配置分享功能

//utils
export default {// 发送给朋友onShareAppMessage(res) {return {title: this.$shareTitle,path: '/pages/login/login'}},//分享到朋友圈onShareTimeline(res) {return {title: this.$shareTitle,path: '/pages/login/login'}}
}
//main.js
import commonShare from '@/utils/commonShare.js'
Vue.prototype.$shareTitle = '分享标题'
Vue.mixin(commonShare)

在任意页面可以自定义更改标题

onLoad() {this.$shareTitle = '登录页面分享'
},

特别的是:全局设置好分享配置后,如果想某个页面个性化定制,同样可以设置onShareAppMessage、onShareTimeline,页面级别的这俩事件是优先级高于全局的

四、小程序分享票据

小程序分享票据shareTickets

通常开发者希望转发出去的小程序被二次打开的时候能够获取到一些信息,例如群的标识。在小程序中调用wx.showShareMenu并且设置 withShareTicket为true,当用户将小程序转发到微信群之后,此转发卡片在群聊中被其他用户打开时,可以在App.onLaunch 或App.onShow获取到一个shareTicket。通过调用wx.getShareInfo(shareTicket) 接口可以获取到转发信息。

分享前调用wx.showShareMenu方法,否则不会带有分享票据

分享票据可以分为私密消息和动态消息

应用场景,这里链接一下知乎的一篇文章


http://chatgpt.dhexx.cn/article/4A99sRGE.shtml

相关文章

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;下面就来简单介绍一…

连接SqlServer服务器出现18456错误

连接SqlServer服务器出现18456错误 问题解决方案 1连接windows身份验证23结果 连接SqlServer服务器出现18456错误 问题&#xff1a; 博主在有个自己的数据库:test&#xff08;是支持sqlserver数据库的&#xff09;要连接sqlserver数据库&#xff0c;但是当输入自己的用户…

SQL Server 2012 sa 用户登录 18456 错误

最近想研究下SQL SERVER2012 Enterprise版本的数据库&#xff0c;听说功能很强大。我是在win7上安装的&#xff0c;安装的过程很顺利&#xff0c;我在用“Windows 身份验证”时&#xff0c;一切OK&#xff0c;但是在用SA用户登录数据库的时候出现如下的错误&#xff1a; 之前装…

microsoft sql server 错误18456

忘记截图&#xff0c;我直接描述下错误吧。 我在windows server服务器上安装sql server 2012数据库&#xff0c;一开始的时候&#xff0c;我采用的是Windows身份验证登录数据库&#xff0c;没有问题。之后&#xff0c;由于我要本地远程连接到服务器上的sql server。所以&#…

SQL Server的sa账户登录不了,提示18456错误

问题描述&#xff1a;用SQL Server身份验证登陆提示18456错误&#xff0c;用windows身份验证登陆正常。导致数据库测试连接加密的时候失败&#xff0c;无法登陆软件。 适用数据库版本&#xff1a;sql2008和sql2016 处理方法&#xff1a; 1、打开数据库——用Windows身份登录…

sqlserver数据库账户登录18456错误怎么解决?

1、以windows验证模式进入数据库管理器。 2、右击sa&#xff0c;选择属性&#xff1a; 在常规选项卡中&#xff0c;重新填写密码和确认密码&#xff08;改成个好记的&#xff09;。把强制实施密码策略去掉。 3、点击状态选项卡&#xff1a;勾选授予和启用。然后确定 4、右击实例…

sqlserver 登陆错误18456

直接看问题&#xff1a; 1.首先打开配置管理器 2.检查服务有没有打开&#xff0c;没错就是那个sql server(msssqlserver)的 好的&#xff0c;服务没有打开&#xff0c;点击打开... 服务启动不了&#xff1f; 进入服务&#xff0c;右键属性&#xff0c;配置账号 点击本地系统账户…

SQLSERVER2008 18456错误

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

sqlserver数据库18456错误怎么解决?

1、以windows验证模式进入数据库管理器。 2、右击sa&#xff0c;选择属性&#xff1a; 在常规选项卡中&#xff0c;重新填写密码和确认密码&#xff08;改成个好记的&#xff09;。把强制实施密码策略去掉。 3、点击状态选项卡&#xff1a;勾选授予和启用。然后确定 4、右击实例…

SQL Server使用登录名连接数据库报错:18456

文章目录 解决办法 错误&#xff1a;18456是因密码或用户名错误而使身份验证失败&#xff0c;如果用户名密码正确&#xff0c;则该登录名没有连接数据库引擎权限&#xff0c;登录权限也被无情剥夺了&#xff0c;开启服务器【SQL Server身份验证模式】即可 解决办法 以windows验…