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

一、背景

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

二、实现分享功能,触发 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.mfbz.cn/a/154835.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CodeMeter软件保护及授权管理解决方案(一)

概述 CodeMeter是德国威步&#xff08;Wibu-Systems AG&#xff09;2004年1月推出的软件加密及授权管理综合解决方案&#xff0c;用于软件保护实现防盗版、软件授权管理实现软件货币化、以及数据加密实现数字资产保护。 使用CodeMeter综合解决方案&#xff0c;可以实现以下价…

【开源】基于Vue和SpringBoot的用户画像活动推荐系统

项目编号&#xff1a; S 061 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S061&#xff0c;文末获取源码。} 项目编号&#xff1a;S061&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 兴趣标签模块2.3 活…

Linux Control Cgroups

无论 Docker 如何进行隔离&#xff0c;无法否认的是我们在当前宿主机中运行的所有容器&#xff0c;它依赖的硬件资源都只是当前机器。 其实启动的每一个容器进程&#xff0c;它本身其实就是当前宿主机的进程之一&#xff0c;那么本质上来说&#xff0c;它也会和宿主机中的其他…

HTML语言的由来与发展历程

HTML&#xff08;HyperText Markup Language&#xff09;是用来描述网页的一种语言&#xff0c;它的由来与发展历程可以追溯到20世纪90年代初。 1980年代初期&#xff0c;Tim Berners-Lee爵士在欧洲核子物理实验室&#xff08;CERN&#xff09;工作期间&#xff0c;开发了一种…

windows安装gdal库

提示&#xff1a;在windows上使用pip在cmd终端安装gdal 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 原因是由于丹丹安装使用pip安装gdal时报错Microsoft visual C 1…

【左程云算法全讲11】贪心算法 并查集

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于左程云算法课程进行的&#xff0c;每个知识点的修正和深入主要参考…

Maven编译报错:javacTask: 源发行版 1.8 需要目标发行版 1.8

报错截图&#xff1a; IDEA中的jdk检查都正常设置的1.8一点毛病没有。参考其他帖子链接如下&#xff1a; https://blog.csdn.net/zhishidi/article/details/131480199https://blog.51cto.com/u_16213460/7197764https://blog.csdn.net/lck_csdn/article/details/125387878 逐…

Android 13.0 recovery出厂时清理中字体大小的修改

1.前言 在13.0的系统rom定制化开发中,在recovery模块也是系统中比较重要的模块,比如恢复出厂设置,recovery ota升级, 清理缓存等等,在一些1080p的设备,但是density只是240这样的设备,会在恢复出厂设置的时候,显示的字体有点小, 产品要求需要将正在清理的字体调大点,这…

A Comprehensive Survey on Graph Neural Networks

A Comprehensive Survey on Graph Neural Networks----《图神经网络研究综述》 摘要 近年来&#xff0c;深度学习已经彻底改变了许多机器学习任务&#xff0c;从图像分类和视频处理到语音识别和自然语言理解。这些任务中的数据通常在欧几里得空间中表示。然而&#xff0c;越来…

个体诊所电子处方模板,佳易王药店电子处方系统门诊病历软件教程

个体诊所电子处方模板&#xff0c;佳易王药店电子处方系统门诊病历软件教程 软件支持中医&#xff0c;西医&#xff0c;对于经常使用的配方&#xff0c;可以自己设置配方模板&#xff0c;点击右侧 配方模板&#xff0c;选择后一键导入配方即可。处方单使用A5纸打印。软件可以试…

【OpenCV实现图像:OpenCV进行OCR字符分割】

文章目录 概要基本概念读入图像图像二值化小结 概要 在处理OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;时&#xff0c;利用传统的图像处理方法进行字符切分仍然是一种有效的途径。即便当前计算机视觉领域主导的是卷积神经网络&#xf…

【软考篇】中级软件设计师 第四部分(三)

中级软件设计师 第四部分&#xff08;三&#xff09; 三十四. 结构化开发方法34.1 内聚34.2 耦合 三十五. 测试基础知识三十六. 面向对象36.1 UML图36.2 设计模式36.3 数据流图 读前须知&#xff1a; 【软考篇】中级软件设计师 学前须知 上一章节&#xff1a; 【软考篇】中级软…

【入门篇】1.7 Redis 之 codis 入门介绍

文章目录 1. 简介2. Codis的安装与配置下载编译源码安装1. 安装 Go 运行环境2. 设置编译环境3. 下载 Codis 源代码4. 编译 Codis 源代码 Docker 部署 3. Codis的架构Codis的架构图和组件Codis的工作流程 4. Codis的核心特性自动数据分片数据迁移高可用性全面支持Redis命令分布式…

Client not connected, current status:STARTING

上面的问题出现在springboot整合nacos的时候出现的 首先说明一点&#xff0c;我出现这个问题是使用了nacos集群&#xff0c;nacos版本为2.2.3&#xff0c;且使用了nginx做了负载均衡&#xff0c;如果您和我一样&#xff0c;那么可以接着往下看。 1️⃣&#xff1a;当nacos版本为…

windows与wsl互传文件

1.把windows上的文件传到wsl中&#xff0c;\\wsl.localhost\Ubuntu-22.04\mnt\wsl 将你要传的文件放到wsl这个路径下&#xff0c;Ubuntu-22.04是我的子系统&#xff0c;换成自己对应的 2.把wsl中的文件传到windows中 将wsl中的文件放到 /mnt/c 或 /mnt/d 中&#xff0c;这两…

汇川伺服【选型目录】

sv680旗舰&#xff1a; 编码器位数&#xff1a;26bit 电机额定转速&#xff1a;3000r【3k】圈脉冲&#xff1a; sv670标准&#xff1a; 编码器位数&#xff1a;23bit【台达B3:23bit&#xff0c;台达A2&#xff1a;bit】 电机额定转速&#xff1a;3000r【3k】圈脉冲&#xff1…

【AI视野·今日Sound 声学论文速览 第三十五期】Fri, 27 Oct 2023

AI视野今日CS.Sound 声学论文速览 Fri, 27 Oct 2023 Totally 8 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Controllable Generation of Artificial Speaker Embeddings through Discovery of Principal Directions Authors Florian Lux, Pascal T…

chatGPT API中参数temperature的含义是什么

在 ChatGPT API 中&#xff0c;temperature 参数用于控制回答的确定性和创造性。temperature 的值范围通常是从 0 到 1。这个参数影响模型生成回答时的随机性&#xff1a; 低温度值&#xff08;如 0 或接近 0&#xff09;&#xff1a;会导致模型生成更确定、更一致、更少出乎意…

微服务实战系列之Sentinel

前言 微服务架构&#xff08;Microservice Architecture&#xff09;是一种架构概念&#xff0c;旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。 近年来&#xff0c;微服务已赫然崛起于IT界&#xff0c;越来越多的程序员不得不向之靠拢。也正因为各行各业都愿为…

ZOC8 for Mac:最佳终端仿真器,助力您的工作效率飞升!

在现代的工作环境中&#xff0c;终端仿真器扮演着不可或缺的角色。无论是开发人员、系统管理员还是网络工程师&#xff0c;都需要一个功能强大、易于使用的终端仿真器来处理各种任务。而ZOC8 for Mac正是为这些专业人士而打造的最佳选择。 作为一款全功能的终端仿真软件&#…
最新文章