uniapp-微信小程序分享给好友和朋友圈功能

2023-12-19

分享给好友

只需要在要分享的页面中设置 onShareAppMessage 即可

只有定义了此事件处理函数,右上角菜单才会显示“转发”按钮

监听用户点击页面内转发按钮( button 组件 open-type="share"

// 使用button分享
<button open-type="share">分享按钮</button>

或者右上角菜单“转发”按钮的行为,并自定义转发内容

具体代码如下

onShareAppMessage(res) {
    //console.log('onShareAppMessage',res);
    return {
      title: '自定义标题',
      path: '/pages/index/index?userId='+Constant.userId+'&share=true',
    }
  },
 
//onShareAppMessage {from: "button", target: {…}}

onShareAppMessage如果带了参数,参数中的from会指明是从哪里触发的,从按钮触发from='button',从右上角菜单中触发from='menu'

是可以支持 自定义标题 自定义路径 自定义图片

具体如下表

我们分享出去的页面  打开小程序的时候可以在 onLoad 事件内监听 获取参数

onLoad(query) {
    console.log('onLoad',query);
}
 
//onLoad {userId: "1530474058280374273", share: "true"}

分享到朋友圈

和分享给好友大部分都是相似的

1、onShareTimeline监听右上角菜单“分享到朋友圈”按钮的行为,并自定义分享内容。

本接口为 Beta 版本,暂只在 Android 平台支持,iOS平台有的机型支持有的不支持

具体代码如下

onShareTimeline() {
    return {
      title: '乐湃鲨自助台球',
      query: 'userId='+Constant.userId+'&storeId='+Constant.curStoreId+'&share=true',
    }
  }

事件处理函数返回一个 Object, 用于自定义分享内容,不支持自定义页面路径 ,返回内容如下:

比分享给好友少了一个自定义路径

2、通过分享到朋友圈的内容打开小程序

用户在朋友圈打开分享的小程序页面,并不会真正打开小程序,而是进入一个“小程序单页模式”的页面,底部固定有操作栏,点击操作栏的“前往小程序”可打开小程序的当前页面。打开当前页面后,比如你分享的不是首页,你的顶部返回按钮又是一个公共的组件,都是返回上一级,你先通过分享的进入小程序,因为页面栈没有上一级,所以你是不能返回首页的,所以需要更改一下你的公共组件。

单页模式的介绍详见: 分享到朋友圈 | 微信开放文档

“单页模式”默认运行的是小程序页面内容, “单页模式”下,一些组件或接口存在一定限制,可通过判断场景值等于 1154 的方法来进行页面适配。

单页模式下有很多 限制 ,详情如下:

单页模式下的限制

小程序“单页模式”适用于纯内容展示场景,可实现的交互与接口能力有限,因此存在如下限制:

  1. 页面无登录态,与登录相关的接口,如 wx.login 均不可用;云开发资源需开启未登录访问方可在单页模式下使用,详见未登录模式。
  2. 不允许跳转到其它页面,包括任何跳小程序页面、跳其它小程序、跳微信原生页面
  3. 不允许横屏使用
  4. 若页面包含 tabBar,tabBar 不会渲染,包括自定义 tabBar
  5. 本地存储与小程序普通模式不共用
  6. 对于一些会产生交互的组件或接口,在点击后调用时,会弹 toast 提示“请前往小程序使用完整服务”。为达到良好的用户体验,请注意适配单页模式的接口能力,请勿大量使用被禁用的接口或组件。

运营须知

  1. 分享朋友圈能力是为了满足纯内容场景的分享诉求,滥用于营销、诱导等行为将会被打击。
  2. 小程序提供的服务中,不得存在滥用分享违规行为。如强制用户分享行为;分享立即获得利益的诱导行为;以及通过明示或暗示的样式来达到诱导分享目的的行为等。详见 一、原则及相关说明 | 微信开放文档
  3. 在“单页模式”下,不得诱导或强制用户点击“打开小程序”,应在“单页模式”中尽可能呈现完整的内容

注意事项

  1. 低版本微信客户端打开时,会进入一个升级提示页面
  2. 不支持在小程序页面内直接发起分享
  3. 自定义分享内容时不支持自定义页面路径
  4. 存在 web-view 组件的页面不支持发起分享
  5. 支持打开开发版、体验版,无权限人员进入时页面会提示无权限
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uniapp-微信小程序分享给好友和朋友圈功能 的相关文章

  • 【XR806开发板试用】基于FreeRtos的XR806 WLAN测试

    作为一名在车机嵌入式耕耘多年的嵌入式工程师 此前我从未接触过蓝牙和无线相关的开发工作 前段时间参与了全志的开发板适用活动 幸运地被免费开发板砸中 到手发现这个板子具有蓝牙5 0和WLAN功能 兴奋之余立马尝试了一下 开发环境的搭建 受工作环
  • 说说 Dubbo 与 Spring Cloud 的区别?

    Dubbo 和 Spring Cloud 都是流行的分布式服务框架 但它们在设计和使用上有一些不同之处 以下是它们之间的一些主要区别 开发语言 Dubbo 主要基于 Java 而 Spring Cloud 是基于 Spring Boot 的
  • 第二部分相移干涉术

    典型干涉图 相移干涉术 相移干涉术的优点 1 测量精度高 gt 1 1000 条纹 边缘跟踪仅为 1 10 边缘 2 快速测量 3 低对比度条纹测量结果良好 4 测量结果不受瞳孔间强度变化的影响 独立于整个瞳孔的强度变化 5 在固定网格点获
  • centos开机自启动实战小案例

    1 编写一个我们需要做事的脚本 bin bash 打印 Hello echo Hello Mr Phor 为了更好的能看到效果 我们把这段文本放置到一个文件中 如果重启能够看到 a txt文件 我们实验成功 echo hahahahahah
  • C++ 字符串中最长的连续出现的字符

    采用双指针思想 include
  • 什么是SpringCloud

    SpringCloud是一个基于Spring Boot的开源框架 它可以帮助开发者快速搭建分布式系统 包括服务注册与发现 配置管理 负载均衡 容错处理等能力 SpringCloud提供了统一的开发接口 使得开发者可以自由选择不同的服务提供者
  • DHCP服务详解

    DHCP Dynamic Host Configuration Protocol 动态主机配置协议 是一种网络协议 用于自动分配IP地址 子网掩码 默认网关 DNS服务器等网络参数给连接到网络的设备 这个过程主要包括四个步骤 DHCP Di

随机推荐