背景:

目前 iOS 和 Android app 想要直接分享微信小程序卡片给其他微信用户时,都需要通过调用微信开放 sdk。

这个过程中需要做平台认证、绑定包名等步骤。

但是有一种情况软件还在开发过程中,或者根本没有来得及申请微信开放平台,但是仍然想要实现分享小程序卡片。本文就提供一种可行的方案。

核心原理:

  • 拼装分享中转页面转页面 scheme,用于 从微信 App 外分享中转页面中的分享中转页面。开放能力 / 获取小程序链接 / 获取 URL Scheme
  • 上述明文 scheme 中应该带有想要分享的小程序卡片的参数:title、path、imageUrl,框架接口 / 页面 / Page
  • 编写小程序的分享中转页面,解析 query 参数 title、path、imageUrl ,并作为 pages 对象中 onShareAppMessage 的返回值,实现打开中转页面后右上角分享卡片功能

注意事项:

  • 使用明文 Scheme 的前提条件是 非个人小程序 ,并且做过微信认证,需要在小程序管理后台-> 账号设置 -> 隐私与安全 -> 明文 scheme 拉起此小程序 中配置可以明文拉起的 小程序 path。
  • 明文 Scheme 中 query 参数的拼装应该是直接对 query 字符串进行编码,例如: encodeURIComponent(`id=${item.id}`)

优势:

  • 能够无缝衔接后续使用微信开放 sdk 的调用方式,后续迁移时代码改动量小
  • 只需要暴露一个分享中转页面,通用性好,并且将分享的逻辑收到一块,不影响其他业务页面
  • 交互体验好,不打断原有流程,整个流程直接下一步下一步即可。

总的来说这是在不直接通过 App 调用微信 sdk ,但是要实现分享卡片的功能时,能想到的最好的方案了