Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | 27x 27x 40x 29x 30x 29x 32x 29x 29x 43x 218x 218x 218x 8x 8x 35x | import { castArray } from 'lodash-uni'
declare const wx: WechatMiniprogram.Wx | undefined
declare const qq: WechatMiniprogram.Wx | undefined
declare const my: WechatMiniprogram.Wx | undefined
declare const jd: WechatMiniprogram.Wx | undefined
declare const swan: WechatMiniprogram.Wx | undefined
declare const tt: WechatMiniprogram.Wx | undefined
declare const dd: WechatMiniprogram.Wx | undefined
const brands = [
'微信',
'QQ',
'支付宝',
'京东',
'百度',
'字节跳动',
'钉钉',
] as const
export type MiniProgramBrand = typeof brands[number]
export type MiniProgramApi = WechatMiniprogram.Wx & {
/** 小程序品牌 */
readonly $brand: MiniProgramBrand
}
const factories: Record<MiniProgramBrand, () => false | WechatMiniprogram.Wx> =
{
微信: () => typeof wx !== 'undefined' && wx,
QQ: () => typeof qq !== 'undefined' && qq,
支付宝: () => typeof my !== 'undefined' && my,
京东: () => typeof jd !== 'undefined' && jd,
百度: () => typeof swan !== 'undefined' && swan,
字节跳动: () => typeof tt !== 'undefined' && tt,
钉钉: () => typeof dd !== 'undefined' && dd,
}
/**
* 检查是否在指定品牌的小程序中,若在,返回承载其 API 的全局对象,若不在,返回 false。
*
* @param brand 指定的小程序品牌,若未指定,则表示所有小程序品牌
* @returns 返回检查结果
*/
export function inMiniProgram(
brand?: MiniProgramBrand | MiniProgramBrand[],
): MiniProgramApi | false {
for (const currentBrand of brand ? castArray(brand) : brands) {
if (factories[currentBrand]) {
const mp = factories[currentBrand]()
if (mp && typeof mp.getSystemInfoSync === 'function') {
// @ts-ignore
;(mp as any as MiniProgramApi).$brand = currentBrand
return mp as any
}
}
}
return false
}
|