分享中间页
背景
小程序中的分享有三种:小程序、图片、自定义内容,主要介绍下分享小程序,其他两种类型是小程序开发者自己的分享内容。有关分享小程序到第三方渠道(微博、微信等),如果采用统一的分享URL(分享中间页),将涉及到分享回流到宿主APP(回跳技术复杂,没有统一方案,不好定制)、第三方渠道审核屏蔽问题。需要每家宿主方有自己的分享中间页,各自处理分享回流,第三方渠道审核屏蔽互不影响。
目的
鉴于分享中间页有一定的复杂性,我们提供一个前端Demo,方便供宿主方参考,快速开发出自己的一套小程序的分享中间。
设计规范

URL规则
分享URL前缀 + 分享query
- 分享URL前缀:宿主方在宿主开放平台配置宿主分享回流中间页shareCallBackUrl,宿主Native端预置宿主配置信息union-cfg.json;
- 分享query:小程序SDK会默认拼装;
1 | type=0&appKey=rCmYObIH7FGWi9K2pUrNmEuKIG4NhUO5&path |
字段介绍:
| key | value |
|---|---|
| type | 0:小程序 1:小游戏 |
| appKey | 小程序或小游戏appKey((百度app中使用appid) |
| path | 小程序页面信息,小游戏没有这个属性,(path需要url encode) ,不是必选项 |
以百度app中分享小程序&小游戏举例:
- 分享小程序完整linkUrl:
1 | https://mbd.baidu.com/ma/landingpage?t=smartapp_share&type=0&appKey=rCmYObIH7FGWi9K2pUrNmEuKIG4NhUO5&path=%2fpages%2fart%2fart%3fid%3d15855925%26xid%3d1585 |
- 分享小游戏完整linkUrl:
1 | https://mbd.baidu.com/ma/landingpage?t=smartapp_share&type=1&appKey=OCCg99E3SmhuCsIF25oNxtmGwLRyLkwp |
Demo
代码地址:iOS开源demo工程下的shareDemo文件夹下。
当前小程序分享中间页Demo,只是提供了一个静态页面,宿主方如果需要以此为模版,涉及两部分改造:
获取小程序消息
宿主端server需要对小程序基本信息查询接口封装一层,给各自的前端调用,获取小程序信息。修改代码如下:
回流到宿主APP
点击“打开xxxAPP体验”,回跳到宿主,宿主前端需要在不同渠道、浏览器内核下进行特殊处理,比如:Custom Url形式、Universe Link形式(iOS)、DeepLink形式(Android)。修改代码如下:
