UniApp 微信小程序分享

在 UniApp 中,onShareAppMessage 是用于配置页面分享信息的生命周期函数,主要在微信小程序、抖音小程序等平台生效(不同平台对分享的支持略有差异,以微信小程序为例说明)。

基本用法

onShareAppMessage 需要定义在页面的 <script> 中,与 data、onLoad 等同级,返回一个对象用于配置分享信息。

示例代码(页面级配置)
复制代码
<template>
  <view>
    <!-- 如需通过按钮触发分享,需给按钮设置 open-type="share" -->
    <button open-type="share">点击分享</button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      // 页面数据
    };
  },
  onLoad() {
    // 页面加载时执行
  },
  // 配置分享信息
  onShareAppMessage(res) {
    // res 是分享事件对象,包含分享来源等信息
    // res.from 可能的值:'button'(来自页面分享按钮)、'menu'(来自右上角菜单)
    
    // 定义分享信息(根据需求动态配置)
    let shareInfo = {
      title: '自定义分享标题', // 分享标题(默认使用当前页面标题)
      path: '/pages/index/index', // 分享后打开的页面路径(必填,相对路径,可带参数)
      imageUrl: '/static/share-img.png' // 分享图片(默认使用页面截图,建议自定义)
    };
    
    // 可根据分享来源动态修改分享信息
    if (res.from === 'button') {
      // 来自页面按钮的分享,可自定义不同内容
      shareInfo.title = '来自按钮的分享';
    }
    
    return shareInfo;
  }
};
</script>

关键参数说明

  1. title 分享标题,字符串类型。默认使用当前页面的标题(pages.json 中配置的 navigationBarTitleText)。

  2. path 分享后打开的页面路径(必填),格式为相对路径(如 /pages/detail/detail)。如需传递参数,可在路径后拼接 query,例如:/pages/detail/detail?id=123&name=test。

  3. imageUrl 分享图片的路径,支持本地资源(如 /static/share.png)或网络图片(需确保网络图片域名在小程序后台配置了合法域名)。若不设置,微信小程序会默认截取当前页面的截图作为分享图。

注意事项

  • 平台支持 :onShareAppMessage 主要在微信小程序、抖音小程序等平台生效,H5 或 App 端需结合平台自身的分享 API 处理(如 App 端可用 uni.share 方法)。
  • 路径规范 :path 必须以 / 开头,且对应的页面需在 pages.json 中注册。
  • 动态配置 :可根据页面数据动态生成分享信息(例如根据当前商品 ID 拼接 path 参数)。
  • 分享按钮 :页面中如需通过按钮触发分享,需给按钮添加 open-type="share" 属性,点击后会自动调用 onShareAppMessage。

通过以上配置,即可在 UniApp 中实现页面的分享功能,具体效果可在对应平台的开发者工具中调试查看。

相关推荐
前端小万4 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
码兄科技4 天前
24小时自助健身房系统软件开发实战指南:功能设计与部署方案
java·spring boot·uni-app
拖孩4 天前
代码我能全交给 AI,流量主这 500 个访客它一个都替不了我
前端·后端·微信小程序
2501_916007474 天前
苹果商店iOS应用上架费用全面解析:开发者计划与审核费用计算
android·ios·小程序·https·uni-app·iphone·webview
2501_916008894 天前
如何实现iOS App代码混淆:SwiftShield使用指南
android·ios·小程序·https·uni-app·iphone·webview
甜到心里的蛋糕4 天前
如何用企业微信实现让微信收到通知实时通知
服务器·python·微信小程序·fastapi
2501_916008894 天前
怎么用 Godot 导出 iOS 应用并上架 App Store?签名字段该填什么?
android·ios·小程序·https·uni-app·iphone·webview
2601_963870204 天前
基于springboot的综合网上购物商场系统
微信小程序·小程序·课程设计
2601_963869955 天前
力序健身房管理系统
微信小程序·小程序
郑州光合科技余经理5 天前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程