api 定位 微信小程序 精度_一行代码区分微信小程序或QQ小程序

背景

很多开发者发现微信小程序的代码作为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";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值