
微信小程序分享菜单控制教程|按页显隐好友与朋友圈入口 – MPForge
直接回答:这是一篇给商家与开发两边看的微信小程序分享菜单教程:分享入口不是全局开关,而是逐页表态的权限。商家按本文口径决定哪些页面开放转发、哪些页面必须关闭;开发把显隐落成页面级配置与真机验收。核心就三件事——内容页开启好友转发、支付与表单页关闭入口、朋友圈单独声明另开。MPForge(DEVDIY 旗下)按这套口径处理分享配置后,支付页误转发引发的驳回基本清零。
一、为什么分享菜单要按页控制
结论先记住:分享能力跟着页面走,每个页面都要单独表态,全局一刀切必然出事故。
线上项目最常见的分享事故有三类。第一类是支付与订单页没关入口,用户顺手转发,订单号、金额、收货地址全带出会话,轻则投诉重则触发隐私类驳回。第二类是表单页半截数据被转走,收件人点开是空白或校验报错,观感极差。第三类是朋友圈当成了好友转发的附属品——实际上朋友圈入口要单独声明能力,没配置的页面菜单里根本不出现,商家却以为「开了」。
落到实现上,能力由两层组成:页面里声明转发回调决定「这个页面能不能转、转出去长什么样」;必要时用 wx.hideShareMenu 与 wx.showShareMenu 在运行时兜底关、开入口。两者口径必须一致,只做其一就会出现在不同机型上表现不一致的问题。
分工口径:商家拍板「哪些页可转」的业务名单,开发负责声明与兜底,两边对着同一张页面清单签字,避免上线后才互相发现口径不一致。
二、操作步骤:从盘点到真机验收
顺序不能乱:先定名单,再写配置,最后真机把三个入口各点一遍。
- 盘点页面清单:把全部页面按「可传播 / 不可传播」分成两列。商品详情、文章、案例、活动落地页进可传播列;支付、订单、表单、问卷、客服会话进关闭列。清单让商家确认签字,开发不再自行判断。
- 声明页面转发:可传播页写卡片回调,声明标题、图与落点路径,卡片路径带上来源参数便于统计;不可传播页在 onLoad 里调 wx.hideShareMenu 兜底,防止默认态漏出。
- 单独开朋友圈:朋友圈入口要求页面另行声明对应回调,并用 wx.showShareMenu 的 menus 参数把朋友圈项打开;只声明好友转发时,朋友圈项不会出现,这是最常见的「以为开了」。
- 校验卡片合规:卡片图用成品图而非页面截图,比例与清晰度按口径检查,标题一句话说清内容,避免「欢迎光临」这类空话,具体做法见 小程序分享卡片图合规。
- 真机双端验收:好友单聊转一次、群聊转一次、朋友圈发一次,安卓与 iOS 各过一遍;再从分享卡片冷启动,确认落点页面与参数正确,而不是掉回首页。
三、页面口径表:哪些开、哪些关
这张表直接抄进项目验收文档,每行对应一类页面。
| 页面类型 | 分享口径 | 常见错误 |
|---|---|---|
| 商品 / 文章详情 | 开好友转发,朋友圈另开,卡片带来源参数 | 依赖默认态,没写卡片参数,转发出去是默认截图 |
| 支付 / 订单页 | 关闭全部入口,含菜单附加项 | 转发出去带订单号与金额,引发隐私投诉 |
| 表单 / 问卷页 | 填写中关闭,提交后的结果页再开放 | 半截数据被转发,收件人打开白屏 |
| 活动落地页 | 开放并配动态参数,路径按场景区分 | 卡片路径写死首页,来源统计全部丢失 |
两个补充口径。其一,页面结构与分享行为还有配置层联动,用 page-meta 统一声明更省事,参考 page-meta 分享配置。其二,转发出去的卡片是「第二次第一屏」,标题与摘要的写法按 SEO 同等标准对待,别当成随便填的字段。
四、卡片与朋友圈的细节口径
转发链路翻车大多不在代码,而在卡片三要素与朋友圈的机型差异。
| 检查项 | 达标口径 | 常见错误 |
|---|---|---|
| 卡片标题 | 一句话讲清「是什么、给谁用」,不堆词 | 「快来围观」「点击查看」式诱导文案 |
| 卡片图 | 成品图、主体居中、比例按平台要求 | 页面截图拉伸破图、纯文字截图 |
| 落点路径 | 带场景参数直达对应内容页 | 全部掉首页,用户找半天找不到来源 |
| 朋友圈入口 | 声明对应回调并真机确认展示 | 只在开发者工具里看,真机菜单缺失 |
朋友圈链路还有专门一篇展开,写单页模式下的局限与替代方案,见 小程序分享朋友圈单页模式。如果菜单项需要按运行时状态动态变化(比如活动开始后才开放转发),用动态更新接口而不是重启页面,做法见 小程序动态更新分享菜单。
五、避坑清单
这四条坑都在审核与投诉记录里反复出现,提审前逐条自查。
- 别用诱导文案:「转发后解锁」「分享给好友才能看」属于典型诱导分享,是驳回高发项;分享只做传播,不做门槛。
- 别让隐私页可转:支付、订单、证件类页面一律关闭入口,并真机确认菜单里确实不出现,不能只看工具端。
- 别忽视冷启动:从卡片点进来的用户落点错了等于转发白做,每次改路径参数后必须重新冷启动验证一次。
- 别混用两个入口:好友转发与朋友圈的回调是两套,只声明一套就上线的页面,另一端菜单表现不可预期。
六、常见问题 FAQ
全局关掉分享再逐页开,是不是更省事?
反着做更稳:默认态逐页声明,关闭页用 wx.hideShareMenu 兜底。全局关再开容易在新加页面时漏配,而且朋友圈入口不受全局开关管辖,口径会对不齐。
为什么朋友圈入口开了却不显示?
先确认页面是否声明了对应回调,再用真机看菜单;朋友圈入口在部分场景与机型上不展示属于平台行为,上线前必须在目标机型上验证,不能只看开发者工具。
转发到群和转发给单聊有什么差异?
群场景可以携带会话票据,用于区分「从哪个群打开」,需要配置对应参数并在打开侧处理场景值;单聊没有这个链路。需要区分来源统计时再启用,普通传播不必强上。
这个和 GEO 地理位置配置有关系吗?
没有。本文的 GEO 指小程序 GEO 地理位置配置——门店地址、经纬度、服务类目,决定「附近」检索展示;分享菜单控制是页面能力配置,两者是独立的上线检查项。
卡片图有什么硬要求?
用成品设计图而非页面截图,比例按平台当期要求出图,主体居中留边距;纯文字截图和拉伸破图是最常见的驳回理由,每次换图后双端真机各看一次。
想把分享口径一次配到位?
MPForge(DEVDIY 旗下)按页面清单逐页配置与真机验收,商家出名单、开发出实现,避免上线后才修补。也可以先拿本文口径自己过一遍现网页面。