关于小程序打开App的方案探讨

起因

具体问题来源于今年5月份(2021年5月)微信将封禁小程序主动打开 App 的能力。 关于不再提供“小程序打开App技术服务”的通知1 这个

<button open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打开APP</button>
复制代码

封禁意味着上面这个传统打开 App 路径的失效,原本的“ launchApp ”只能用于 App 打开小程序后回到小程序的路径2

那么这个限制对于很多依赖小程序来对原生应用引流、依赖小程序做应用、游戏外社区互联的业务来说简直是灭顶之灾。因此项目组之前用的一些唤起 App 的功能也搁置了半年。因为最近打算在业务上打通小程序跳 App 这个通路,所以重新研究了一下方案。

解决方案

非游戏业务

这块业务主要参考微博的技术方案3

企业微信截图_20211202145013.png

这套方案相当于把分享的跳转入口从小程序抽离到 H5 ,暴露了用户从分享入口到 H5 的页面,再通过 deeplink 技术实现跨 App 的操作。当然,这个方案的缺点在于,用户最终只能在小程序和原生应用中二选一。要求开放者在小程序中能提供与原生应用几乎一致的体验,这也会带来不小的开发压力。

游戏业务

2021年之前我们可以通过应用宝链接打开游戏,那2021年之后我们可以使用微信游戏,或者是通过游戏圈来进行引导打开。 微信游戏其实就是微信官方的 H5 游戏社区。

游戏圈分为 小程序游戏圈,H5 游戏圈。 企业微信截图_20211202155503.png

要在小程序内打开 H5 还需要在小程序的管理后台配置响应的业务域名

企业微信截图_16383304855106.png

业务域名的配置需要一个ICP备案的域名,同时需要把业务后台生成的key文件放置在业务域名服务器上的根目录中4

当然内嵌 H5 也有很多限制诸如

  • 小程序内嵌网页能力暂不开放给个人类型帐号和小游戏帐号
  • 仅支持部分jsapi能力(这一部分 jsapi 就包含跳转 app 的 deeplink 能力

配置好相关业务域名后,小程序可以通过以下流程打开对应游戏应用。

image.png

*这里说的方案是通过微信小程序打开腾讯系游戏方案。如果是非腾讯系或者非腾讯渠道游戏,只能走上面提到的微博方案了。(只有上架正式版的应用可以得到游戏圈支持) *

结论

如果是腾讯合作、腾讯系游戏开发商可以参考 小程序内嵌 H5 -> 游戏圈 -> 游戏,这个方案。其他同学可以使用微信的 H5 引导到小程序或 App 的方案。


本文自此,最后来谈谈对小程序业务的思考。 小程序本质是一个宿主应用平台,按照国内互联网大厂对于用户流量的把持态度来看,它就是为了宿主 app 或宿主 app 集团服务的。

从微信小程序到快应用,再到支付宝小程序、抖音小程序。这些可以看出,宿主希望通过内部小程序提供各种服务载体,加大用户对宿主程序的依存度,说白了就是“我这什么都有,你别去应用市场找那些有的没的”。

从开发人员角度来看,小程序它作为一个技术分支是既开放又封闭的,开放是因为它提供了 FaaS 云函数、云测试、类 Vue 语法、快捷上线和部署环节,这些降低了开发者的门槛让这个技术更好的推广开来,但是它也成为了平台圈地的手段,它终究是平台工具,在这个食堂吃饭还是要看厨子的脸色的。这也导致开源社区的开发者对这项技术颇有微词。(ps:所以 pwa 是不用想在国内开花了)

参考文章

猜你喜欢

转载自juejin.im/post/7037024660298399752