转发
收藏
我的收藏

警告
此文档将逐步废弃,后续不再维护,请参考 转发和挂载概述 进行接入。 ​
通常开发者希望转发出去的小程序被二次打开的时候能够获取到一些信息,本文通过说明分享流程来说明如何设置这些信息。​

名词解释​

ShareOption​

ShareOption 是指系统调用开发者(通过 Page.onShareAppMessage )注册的回调时,传递给回调函数的参数,具体字段可查阅ShareOption对象说明。​

ShareParam​

ShareParam 是指开发者最终传递给发布器的数据(通过 Page.onShareAppMessage 返回),一般 ShareParam 决定了小程序被二次打开的时候能够获取到哪些信息,以及被转发出去后具有什么样的媒体形式。具体字段可查阅ShareParam 对象说明。​

分享调用流程图​

如上图所示,开发者主要是通过 Page.onShareAppMessage 返回的 ShareParam 来控制发布器的行为,以及对分享内容进行设置。​

入口控制​

    可以使用button 组件来触发分享,需要将 button 组件的 open-type 属性设置为 share 。​
【注】基础库版本2.91.0及以上,若当前页面中没有注册 Page.onShareAppMessage,也没有调用 tt.hideShareMenu 隐藏分享按钮逻辑,那么此时会在更多菜单中展示分享按钮,用户点击后默认分享小程序首页,其他分享配置将优先使用【开放平台】-【运营-流量配置】-【分享卡片配置】中的配置,其次使用【小程序简介】进行兜底。​

代码示例​

JavaScript
复制
Page({
async onShareAppMessage(option) {
const title = await this.getTitle();
return {
title, // 这是要转发的小程序标题
desc: "转发文案",
path: "/pages/index/index?from=sharebuttonabc&otherkey=othervalue", // ?后面的参数会在转发页面打开时传入onLoad方法
imageUrl: "https://e.com/e.png", // 支持本地或远程图片,默认是小程序 icon
templateId: "这是开发者后台设置的分享素材模板id",
success() {
console.log("分享成功");
},
fail() {
console.log("分享失败");
},
};
},
onLoad(query) {
if (query.from === "sharebuttonabc") {
// do something...
}
},
getTitle() {
return new Promise((resolve) => {
setTimeout(() => {
resolve("This is a mock title");
}, 2000);
});
},
});

QA​

Q:获取小程序分享链接的方式以及链接有效期是多久?​
A:链接获取路径为【进入该小程序-点击右上角更多-点击分享-复制链接】;分享链接的时效性是 45 天​