概述
收藏
我的收藏

通常开发者希望转发出去的小程序被二次打开的时候能够获取到一些信息,本文通过说明分享、视频发布和挂载、直播挂载流程来说明如何设置这些信息。​

分享​

Codelab 教程,请参考小程序分享。​

名词解释​

ShareOption​

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

ShareParam​

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

分享调用流程图​

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

入口控制​

    小程序右上角胶囊按钮里默认会自动带上「分享」入口;​
    可以使用 button 组件 来触发分享,需要将 button 组件的 open-type 属性设置为 share ;​
【注】用户点击后默认分享小程序首页,其他分享配置将优先使用【开放平台】-【运营-流量配置】-【分享卡片配置】中的配置,其次使用【小程序简介】进行兜底。​

代码示例​

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);
});
},
});

视频发布和挂载​

Codelab 教程,请参考如何在抖音短视频上挂载小程序锚点。​

名词解释​

UploadOption​

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

UploadParam​

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

注意事项​

openType="uploadDouyinVideo" 以外的其他「视频发布和挂载」场景,如果希望使用的是 Page.onUploadDouyinVideo钩子函数,需要在 app.json 中参考以下方式进行配置,否则默认使用的是 Page.onShareAppMessage 钩子函数,详见 小程序配置中 publishVideoHookPriorityList。​
JavaScript
复制
{
"publishVideoHookPriorityList": ["onUploadDouyinVideo", "onShareAppMessage"]
}

视频发布和挂载调用流程图​

入口控制​

    如果参考 小程序配置中 publishVideoHookPriorityList 配置了使用 Page.onUploadDouyinVideo 钩子函数,且显示定义了 Page.onUploadDouyinVideo(callback) 方法,在小程序右上角胶囊按钮里会自动带上「拍抖音」入口;​

代码示例​

JavaScript
复制
Page({
async onUploadDouyinVideo(option) {
const title = await this.getTitle();
return {
// 传入videoPath表示上传videoPath对应的视频到抖音,没填videoPath代表拉起拍摄器拍摄视频
// videoPath: 'ttfile://xxx',
titleConfig: {
title
},
success() {
console.log("视频发布/挂载成功");
},
fail() {
console.log("视频发布/挂载失败");
},
};
},
getTitle() {
return new Promise((resolve) => {
setTimeout(() => {
resolve("This is a mock title");
}, 2000);
});
},
});

直播挂载​

Codelab 教程,请参考如何在抖音直播挂载小程序入口。​

名词解释​

LiveOption​

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

LiveParam​

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

直播挂载调用流程图​

代码示例​

JavaScript
复制
Page({
async onLiveMount(option) {
const title = await this.getTitle();
return {
title,
path: "/pages/index/index?from=sharebuttonabc&otherkey=othervalue",
success() {
console.log("直播挂载成功");
},
fail() {
console.log("直播挂载失败");
},
};
},
getTitle() {
return new Promise((resolve) => {
setTimeout(() => {
resolve("This is a mock title");
}, 2000);
});
},
});

QA​

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