自定义菜单
优质
小牛编辑
142浏览
2023-12-01
1. 小程序更多菜单功能说明
为了支持 App 内的不同业务需求、支持不同类型的分享,当前 SDK 支持配置更多菜单,按类型可分为 onMiniProgram 和 common 类型(均在管理后台配置)
- common: 该类型无需小程序添加额外处理
- onMiniProgram: 该类型菜单在点击时,会向小程序获取数据用以提供给 App 的业务处理
如果菜单的按钮类型是 onMiniProgram 类的,需要小程序提供额外调用参数,需要在小程序代码中配合实现,以提供对应的数据。(功能类似 Page api onShareAppMessage)
2. 小程序更多菜单举例
例如:APP 内更多菜单项目要实现 onMiniProgram 类型的【分享到钉钉】和【分享到新浪微博】(这里仅说明小程序中需要做的处理)
2.1 分享 ID
- 管理后台配置分享到钉钉菜单 ID 为 ShareDingDing
- 管理后台配置分享到新浪微博 ID 为 ShareSinaWeibo
2.2 分享配置
小程序对应页面内,配置 onShareDingDingButtonHandler 和 onShareSinaWeiboButtonHandler 两个 function(如不配置对应的 function,SDK 不会展示对应的菜单)
小程序配置方法:
on{id}ButtonHandler(id 为首字母大写)
funtion 调用后需返回 title、appInfo 等信息,会透传给 SDK 处理
整个流程:
当点击【分享到钉钉】菜单项目时,就会调用 onShareDingDingButtonHandler function,返回数据、透传给 SDK 处理
注意
小程序代码中,为了与 onShareAppMessage 统一命名和规范,处理ID时会统一转为首字母大写。
更多示例
- ID 为 shareWeibo,小程序则需要配置 onShareWeiboButtonHandler;
- ID 为 shareDingDing,小程序则需要配置 onShareDingDingButtonHandler;
- ID 为 doSomething,小程序则需要配置 onDoSomethingButtonHandler;
- ID 为 ShareQQ,小程序则需要配置 onShareQQButtonHandler。
Page({
// ...
// 自定义 handler
onShareDingDingButtonHandler(e) {
return {
title: "onShareDingDingButtonHandler custom title",
appInfo: {
// 其他额外信息
},
success(res) {
console.log('share success callback', res)
},
fail(res) {
console.log('share fail callback', res)
}
}
},
// 自定义 handler
onShareSinaWeiboButtonHandler(e) {
return {
title: "onShareSinaWeiboButtonHandler custom title",
appInfo: {
// 其他额外信息
},
success(res) {
console.log('share success callback', res)
},
fail(res) {
console.log('share fail callback', res)
}
}
},
onShareAppMessage(res) {
return {
title: 'onShareAppMessage custom title',
appInfo: {
// 其他额外信息
},
success(res) {
console.log('share success', res)
},
fail(res) {
console.log('share fail', res)
}
}
}
})