# 分享业务相关
# api域:
const shareHandler = kreator.services.shareHandler;
通用分享Api,兼容App、微信/支付宝小程序、微信浏览器(公众号)环境。
请注意,该Api的调用时机在各客户端可能存在差异。
在App端,调用该方法将唤起原生分享弹框,选择指定的分享方式;在小程序环境,调用该Api不会直接拉起分享弹窗(目前webView没有该权限),而是会修改分享时的链接、文案、图片等参数。分享弹框只能通过用户手动点击右上角的...选择转发,而这x个操作微信没有提供任何事件来通知开发者。因此通常我们会在页面加载完成(或者请求完成——分享内容很可能是接口下发的)时调用shareHandler方法初始化分享参数——即是说,这里我们需要有一些环境判断的操作。
微信浏览器环境同理,调用shareHandler也不会直接唤起分享弹框,只是SDK会同时完成微信好友与朋友圈两个Api的初始化操作。
通常在一些活动页面,可能会在分享完成的回调中执行一些请求操作来进行分享任务的完成逻辑。但请注意,微信SDK没有提供任何分享失败的回调通知,因此即使用户跳转到微信却没有发送给任何好友,直接点击取消返回到App,依旧会执行分享成功的Resolve回调。很遗憾目前这是一个没有解的问题。
#
# 请求入参:
参数名 | 类型 | 描述 |
---|---|---|
shareTitle | string | 分享标题 |
shareDesc | string | 分享描述 |
shareUrl | string | 分享页面链接 |
shareImage | string | 分享卡片上的图片链接 |
?shareType | string 或 number | 分享类型 |
?shareId | string | 活动ID (已废弃可忽略) |
?platform | string | 可分享平台。 取值为WX、WXPYQ、QQ、WB,各个值之间竖线分隔 |
?mpId | string | 小程序原始ID。 从App端分享到小程序时,该参数为必传 |
?mpPath | string | 小程序页面路径。从App端分享到小程序时必传。 如果传入一HTTP链接,则默认使用:pages/webview/webview作为容器。 |
?mpImage | string | 小程序分享卡片图片连接。 旧版本App分享至小程序时使用,非必填。 |
?mpHDImage | string | 小程序分享卡片图片连接。 从App端分享至小程序时使用,非必填。 |
?mpType | string | 小程序类型。 从App端分享至小程序时使用,非必填。默认为0。 0:正式版 1:开发版 2:体验版 |
?searchTip | string | 支付宝小程序搜索口令。 仅支付宝小程序环境可用。 使用口令分享时,搜索口令时展示的提示内容。 |
?bgImgUrl | string | 支付宝小程序卡片背景图,仅支付宝小程序环境可用。 分享卡片的背景图片,尺寸为5:4。 |
?content | string | 支付宝小程序口令文案,仅支付宝小程序环境可用。 |
?shareParams | object | 小程序分享自定义参数,仅小程序环境可用。 以JSONString格式拼接在url上的自定义参数,通常用于数据埋点统计。 较少使用,具体请参考实际产品需求。 |
?mpWebviewPath | string | 小程序webview容器链接,仅小程序环境可用。 当分享为HTTP链接时,该参数为webview容器的链接。默认为pages/webview/webview。 |
nativeParams | object | 自定义参数,全端可用。 当需要增加一些新的自定义参数,也即是不在上述参数之内的新字段,可以通过nativeParams进行透传。 |
PS:或许你会感到有些疑惑,SDK已经对HTTP链接进行了判断,分享到小程序时默认使用webview容器承载,但是分享dshop链接却没有使用dshop专用容器承载。这是因为不一定每个小程序都有dshop专用的容器,甚至有些小程序中是使用原生页面实现了dshop活动,因此我们不会单独判断dshop链接,这样会对开发者带来更多适配上的困难。
shareHandler({
shareUrl: window.location.href,
shareTitle: 'Kreator 测试标题',
shareDesc: 'Kreator 测试描述 这是一行描述',
shareImage: 'https://img.dmallcdn.com/dshop/202101/db174084-860d-479f-8950-504d95a6c87f',
platform: 'WX|WXPYQ',
mpId: 'gh_275e05e9ba82',
mpType: '2',
mpPath: window.location.href,
mpImage: 'https://img.dmallcdn.com/20180911/a2f8495b-570a-4a37-ae25-daac95d38c2b_240x240L',
mpHDImage: 'https://img.dmallcdn.com/20180911/a2f8495b-570a-4a37-ae25-daac95d38c2b_240x240L',
}).then((res) => {
console.log(res);
})