背景
很多开发者发现微信小程序的代码作为QQ小程序也能运行,可谓是无缝移植,这点为腾讯开发团队点赞。
但是QQ和微信小程序之间的服务端API有所不同,由此产生了一个需求:
判断小程序当前是运行在微信还是QQ上
,从而发送不同的API。
分析
如果我们有compile time的话,只要在编译的时候定义目标环境即可。可惜我们目前只有runtime。
微信小程序能够无缝移植到QQ小程序,主要靠的是QQ小程序支持了微信小程序的大部分客户端API,并且直接使用
wx.methodName
来调用。
那么我们不妨逆向思维一下,微信小程序能否使用
qq.methodName
来进行调用API呢?经过实验这是不行的。
qq
这个全局变量没有被定义。
分析2
如果直接使用:
if (qq) { ... }
这样来判断是行不通的,因为qq这个全部变量未被定义,从而导致代码出错。
解决方案
const runtime = typeof qq === "undefined" ? "wechat" : "qq";
版权声明:本文为weixin_42099530原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。