# onShareAppMessage

  • 监听用户点击页面内转发按钮(button 组件 open-type="share"),并自定义转发内容。
  • 完整的文档可前往小程序文档中心查看onShareAppMessage,本文仅描述该能力在多端框架中使用的差异点

补充:多端模式下「分享」的能力是基于 wx.miniapp.shareMiniProgramMessage 实现,因此需按照 wx.miniapp.shareMiniProgramMessage完成相关初始化配置(即,需要绑定移动应用账号,勾选 opensdk 扩展能力等)

# 小程序模式下的自定义转发内容

字段 说明 默认值
title 转发标题 当前小程序名称
path 转发路径 当前页面 path ,必须是以 / 开头的完整路径
imageUrl 自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径。支持PNG及JPG。显示图片长宽比是 5:4。 使用默认截图
promise 如果该参数存在,则以 resolve 结果为准,如果三秒内不 resolve,分享会使用上面传入的默认参数

# 多端应用模式下转发的内容

下列参数同 wx.miniapp.shareMiniProgramMessage

字段 说明 是否必填
userName 小程序原始ID,如 gh_d43f693ca31f,点击查看获取方式
path 小程序页面路径;只支持本地路径,不支持网络路径
title 标题
description 描述
imagePath 分享小程序相关缩略图,支持代码包图片资源路径或者本地临时、缓存、用户文件(不支持网络地址)
webpageUrl 兼容低版本的网页链接 url
withShareTicket 通常开发者希望分享出去的小程序被二次打开时可以获取到更多信息,例如群的标识。
miniprogramType 0-正式版,1-开发版,2-体验版
scene 发送的目标场景,只支持会话,0=分享到会话
promise 如果该参数存在,则以 resolve 结果为准,如果三秒内不 resolve,分享会使用上面传入的默认参数

示例代码

Page({
  onShareAppMessage() {
    const promise = new Promise(resolve => {
      setTimeout(() => {
        resolve({
          userName: '小程序原始id',  
          path: 'pages/index/index',
          title: '标题',
          imagePath: '/pages/thumb.png',
          webpageUrl: 'www.qq.com',
          withShareTicket: true,
          miniprogramType: 0,
          scene: 0, 
        })
      }, 2000)
    })
    return {
      userName: '小程序原始id',  
      path: 'pages/index/index',
      title: '标题',
      imagePath: '/pages/thumb.png',
      webpageUrl: 'www.qq.com',
      withShareTicket: true,
      miniprogramType: 0,
      scene: 0, 
      promise 
    }
  }
})