uniapp 微信小程序分享功能 onShareAppMessage(options)

news2024/11/30 10:31:19

一、背景

在微信小程序中需要完成转发分享功能,接收人未登录小程序情况下,在微信上打开不用强制登录,可以查看部分分享的内容;如果用户要查看更多内容,可以点击【查看全部】按钮,触发登录逻辑,引导用户登录后查看更多内容!

二、实现分享功能,触发 onShareAppMessage 函数

2.1、自定义按钮实现分享

<button open-type="share">
  <text class="iconfont icon-zhuanfa2"></text>
  <text class="num">2</text>
</button>

备注:

按钮的open-type属性为share

第一个text为图标,第二个text为转发的数量

2.2、定义 onShareAppMessage函数,设置该页面的分享信息

小程序中用户点击分享后,在 js 中定义 onShareAppMessage 处理函数(和 onLoad 等生命周期函数同级),设置该页面的分享信息。 用户点击分享按钮的时候会调用此函数

官网详细指引👉:分享 | uni-app官网

onShareAppMessage(res) {
  let pages = getCurrentPages(); //获取当前页面栈的信息
  let currentPage = pages[pages.length - 1]; //获取到当前页面栈中最后一个页面的索引
    if (res.from === 'button') {// 来自页面内分享按钮
      console.log(res.target)
    }
    return {
      title: '自定义分享标题',
      path: currentPage.route + `?id=${this.id}&share=${this.share}` //后面是路径上要传递的参数
    }
  }

2.3、转发的页面效果

三、接收人未登录小程序可查看部分内容

接收人未登录小程序情况下,在微信上打开不用强制登录,可以查看部分分享的内容

3.1、分析:

原本逻辑是在onLoad中已经做了判断,如果用户没登录,会弹窗提示用户登录;

3.2、根据分享时携带的参数,确定是否需要登录提示

上一步在onShareAppMessage分享函数中的路径上有添加一个share参数,那可以在onLoad中根据分享的参数来判断,有参数就不弹窗提示登录

说明:checkLogin()函数是在main.js里面定义的登录弹窗内容,在此页面直接使用的

关于encodeURIComponent 解释说明,详细内容可百度:

encodeURIComponent 是 JavaScript 中的一个函数,用于对 URI(统一资源标识符)进行编码,以便在URL中传递参数时对特殊字符进行转义。它的作用是将字符串作为URI组件进行编码,将特殊字符转换为对应的十六进制转义序列,以便在URL中安全地传递和使用。

main.js文件定义的checkLogin()函数如下👇

3.3、实际效果

接收用户未登录时只展示部分内容,并提供查看全部按钮,若要查看更多内容,会再弹窗登录提示

四、接收人要查看全部内容,触发登录逻辑

4.1、 点击查看全部按钮,触发登录

<view class="more" v-if="!showBottomBox" @click="clickMore">
  <text class="iconfont icon-xiala2-01"></text>
  <text>查看全部</text>
</view>

methods: {
  //点击查看更多按钮
  clickMore(){
   //调用登录方法
   this.checkLogin(this.nowUrl);
  },
}

4.2、解决点击登录后,页面不跳转问题

问题说明:此时用户点击登录后,没有回到刚才查看内容的页面,停留在当前页面不动,主要是没有跳转回去,那问题可能就出现跳转上

找到登录页面,查看传递的参数,打印后发现传递的参数路径是经过encodeURIComponent编码后的,所以跳转不过去,需要利用decodeURIComponent,将其中的百分号编码表示形式转换回原始字符

关于decodeURIComponent 解释说明,详细内容可百度:

decodeURIComponent 是 JavaScript 中的一个函数,用于对已经进行编码的 URI 组件进行解码,将其中的百分号编码表示形式转换回原始字符。它的作用是将经过 encodeURIComponent 编码的字符串进行解码,还原为原始的字符串形式。

methods:{
    //授权成功后,登录跳转
   refuse() {
	  console.log('11111backUrl++++',this.backUrl);
      if (this.backUrl) {
      	 uni.reLaunch({
      	 url: decodeURIComponent(this.backUrl)
      	 })
        } else {
      	 uni.reLaunch({
      	 url: '/pages/index/index'
       })
     }
   }
}

最后,👏👏 😀😀😀 👍👍  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1215556.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2023云栖】郭瑞杰:阿里云搜索产品智能化升级

本文根据 2023 云栖大会演讲实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a;郭瑞杰 | 阿里云资深技术专家、搜索负责人 演讲主题&#xff1a;阿里云搜索产品智能化升级发布 近日在2023云栖大会上&#xff0c;阿里云搜索负责人郭瑞杰对阿里云搜索产品智…

轻松实现文件改名:让新文件名与目录名称一致

在日常工作中&#xff0c;我们经常需要处理文件改名的问题。有时候&#xff0c;我们需要将新文件名设置为与目录名称相同&#xff0c;以方便管理和查找。然而&#xff0c;这个过程可能很繁琐&#xff0c;尤其是当你有大量的文件需要改名时。幸运的是&#xff0c;现在有一种简单…

【Mquant】7:构建价差套利(三) ——空间误差校正模型

文章目录 1. 上节回顾2. 纯碱价差套利3. 什么是协整性分析4. 通过协整性检验5. 空间误差校正模型&#xff08;VECM&#xff09;6. 构建交易策略7 总结 1. 上节回顾 【Mquant】6&#xff1a;构建价差套利(二)上节带领大家编写了统计套利均值回归的程序&#xff0c;通过历史回测…

服务器数据恢复—服务器raid5离线磁盘上线同步失败的数据恢复案例

服务器数据恢复环境&故障&#xff1a; 某品牌DL380服务器中有一组由三块SAS硬盘组建的RAID5阵列。数据库存放在D分区&#xff0c;数据库备份存放在E分区。 服务器上有一块硬盘的状态灯显示红色&#xff0c;D分区无法识别&#xff0c;E分区可识别&#xff0c;但是拷贝文件报…

如何通过 wireshark 捕获 C# 上传的图片

一&#xff1a;背景 1. 讲故事 这些天计划好好研究下tcp/ip&#xff0c;以及socket套接字&#xff0c;毕竟工控中设计到各种交互协议&#xff0c;如果只是模模糊糊的了解&#xff0c;对分析此类dump还是非常不利的&#xff0c;而研究协议最好的入手点就是用抓包工具 wireshar…

从哪里下载 Oracle database 11g 软件

登入My Oracle Support&#xff0c;选择Patches & Updates 标签页&#xff0c;点击下方的Latest Patchsets链接&#xff1a; 然后单击Oracle Database&#xff0c;就可以下载11g软件了&#xff1a; 安装单实例数据库需要1和2两个zip文件&#xff0c;安装GI需要第3个zip文…

01.智慧商城——项目介绍与初始化

智慧商城 - 授课大纲 接口文档&#xff1a;https://apifox.com/apidoc/shared-12ab6b18-adc2-444c-ad11-0e60f5693f66/doc-2221080 演示地址&#xff1a;http://cba.itlike.com/public/mweb/#/ 01. 项目功能演示 1.明确功能模块 启动准备好的代码&#xff0c;演示移动端面…

关于smartforms 文本乱码问题

运行程序 RSCPSETEDITOR 取消默认的MS word 编辑器后&#xff0c;如出现合同文本、PO文本以及S010文本中文乱码问题的话&#xff0c;需要恢复MS word 编辑器 &#xff0c;使用MS word 维护长文本即可 MS word 使用&#xff0c;弹出MS word 文本编辑器框&#xff0c;贴入需要输…

linux版:TensorRT安装教程

首先安装cuda和cudnn 查看安装的cuda版本 nvidia-smi查看cuda电脑的版本&#xff0c;我的是11.8版本的 nvcc -V查看cudnn版本&#xff0c;在cuda/cuda118/include路径下 cat cudnn_version.h | grep CUDNN_MAJOR -A 2下载TensorRT8.5 GA 下载地址&#xff1a;https://deve…

【部署篇】Docker配置MySQL容器+远程连接

一、前言 上篇文章在部署nestjs时&#xff0c;由于docker访问不了主机的localhost&#xff0c;所以无法连接主机数据库。所以我们只能在docker中额外配置一个数据库&#xff0c;映射到主机上&#xff0c;然后可以通过ip地址访问。 在本篇文章我们会在docker中创建一个mysql&a…

SQLSERVER 遍历循环的两种方式很详细有源码(2)

2.游标循环 Create table WS_Student ( [Id] int primary key not null, [My_Cocode] [int], [My_SCocode] [int], [userId] [bigint], [SetCName] [varchar](50) NULL, [SetEName] [varchar](50) NULL, [SetPcode] [varchar](50) NULL, [Se…

Windows10电脑没有微软商店的解决方法

在Windows10电脑中用户可以打开微软商店&#xff0c;下载自己需要的应用程序。但是&#xff0c;有用户反映自己Windows10电脑上没有微软商店&#xff0c;但是不清楚具体的解决方法&#xff0c;接下来小编给大家详细介绍关于解决Windows10电脑内微软商店不见了的方法&#xff0c…

SimaPro生命周期评估建模与碳足迹分析流程

SimaPro以系统和透明的方式轻松建模和分析复杂的生命周期&#xff0c;通过确定供应链中每个环节的热点&#xff0c;从原材料的提取到制造&#xff0c;分销&#xff0c;使用和处置&#xff0c;衡量所有生命周期阶段的产品和服务对环境的影响。SimaPro是过去25年评估生命周期的最…

2024长三角智能科技产业博览会(简称:世亚智博会)

2024长三角智能科技产业博览会&#xff08;简称:世亚智博会&#xff09;将于2024年3月份在上海跨国采购会展中心盛大开幕&#xff0c;主题为“数字新时代链接新未来”。展会将紧密围绕“一展、一会、一评选及相关活动”的内容形式&#xff0c;全面展示智能科技产业的最新成果和…

C++函数重载及引用

应知学问难&#xff0c;在于点滴勤 C和C语言函数之间最大的的不同是C支持缺省参数&#xff0c;而C语言不支持&#xff0c;这里我使用的编译器为VS2022&#xff0c;创建项目时是依据文件后缀判断该文件为C文件还是C。&#xff08;编译环境VS2022&#xff09; 文章目录 缺省参数…

【 云原生 | K8S 】kubeadm 部署Kubernetes集群

目录 1 环境准备 2 所有节点安装docker 3 所有节点安装kubeadm&#xff0c;kubelet和kubectl 4 部署K8S集群 4.1 查看初始化需要的镜像 4.2 初始化kubeadm 4.3 设定kubectl 4.4 所有节点部署网络插件flannel master&#xff08;2C/4G&#xff0c;cpu核心数要求大于2&am…

Stable Diffusion1.5网络结构-超详细原创

目录 1 Unet 1.1整体结构 2 VAE 3 CLIP 绘制软件&#xff1a;ProcessOn&#xff0c;以下图片保存可高清查看 1 Unet 1.1详细整体结构 1.2 缩小版整体结构 1.3 CrossAttnDownBlock2D 2 VAE 3 CLIP

elasticsearch+canal增量、全量同步

目录 一、搭建环境&#xff1a; 1.1 下载软件上传到linux目录/data/soft下 1.2 把所有软件解压到/data/es-cluster 二、单节点&#xff08;多节点同理&#xff09;集群部署elasticsearch 2.1 创建es用户 2.2 准备节点通讯证书 2.3 配置elasticsearch&#xff0c;编辑/d…

[模版总结] - 树的基本算法3 - 结构转化

二叉树结构转化 通常将二叉树根据某些要求进行结构重构&#xff0c;比如线性结构转化(链表&#xff0c;数组)&#xff0c;序列化等。 常见题型 注&#xff1a;这类题目最基本的解题思路是利用递归分治 (也可以使用迭代方法)&#xff0c;在构建树结构的时候&#xff0c;我们通…

餐厅订座预约小程序的效果如何

市场中无论哪种城市&#xff0c;餐厅非常多&#xff0c;一条不长的商业街&#xff0c;汇聚着数家餐饮品牌&#xff0c;且相互间竞争激烈&#xff0c;并且各个商家都希望用成本低高效率的方法引流及转化。 随着互联网深入各个行业&#xff0c;传统餐饮行业经营痛点不少。 传统餐…