uni-app平台判断 | uni app判断h5 小程序 app 等不同平台

使用

// @/utils/Config.ts

import {EPlatform} from './EPlatform';
import {isH5, Platform} from '@/utils/Platform'

/**配置信息*/
export default class Config {
  /**http请求根目录*/
  static get httpBaseUrl(): string {
    if (isH5) {
      return '/'
    } else {
      return 'http://demo.cn/'
    }
  }
}

推荐使用条件编译

/**枚举EPlatform*/
export enum EPlatform {
  /**App*/
  AppPlus = 'APP-PLUS',
  /**App nvue*/
  AppPlusNvue = 'APP-PLUS-NVUE',
  /**H5*/
  H5 = 'H5',
  /**微信小程序*/
  MpWeixin = 'MP-WEIXIN',
  /**支付宝小程序*/
  MpAlipay = 'MP-ALIPAY',
  /**百度小程序*/
  MpBaidu = 'MP-BAIDU',
  /**字节跳动小程序*/
  MpToutiao = 'MP-TOUTIAO',
  /**QQ小程序*/
  MpQq = 'MP-QQ',
  /**360小程序*/
  Mp360 = 'MP-360',
  /**微信小程序/支付宝小程序/百度小程序/字节跳动小程序/QQ小程序/360小程序*/
  Mp = 'MP',
  /**快应用通用(包含联盟、华为)*/
  QuickappWebview = 'quickapp-webview',
  /**快应用联盟*/
  QuickappWebviewUnion = 'quickapp-webview-union',
  /**快应用华为*/
  QuickappWebviewHuawei = 'quickapp-webview-huawei',
}

/**使用条件编译获取平台信息*/
export function ifDefPlatform(): EPlatform {
  let platform: EPlatform
  //#ifdef APP-PLUS
  platform = EPlatform.AppPlus;
  //#endif
  //#ifdef APP-PLUS-NVUE
  platform = EPlatform.AppPlusNvue;
  //#endif
  //#ifdef H5
  platform = EPlatform.H5;
  //#endif
  //#ifdef MP-WEIXIN
  platform = EPlatform.MpWeixin;
  //#endif
  //#ifdef MP-ALIPAY
  platform = EPlatform.MpAlipay;
  //#endif
  //#ifdef MP-BAIDU
  platform = EPlatform.MpBaidu;
  //#endif
  //#ifdef MP-TOUTIAO
  platform = EPlatform.MpToutiao;
  //#endif
  //#ifdef MP-QQ
  platform = EPlatform.MpQq;
  //#endif
  //#ifdef MP-360
  platform = EPlatform.Mp360;
  //#endif
  //#ifdef MP
  platform = EPlatform.Mp;
  //#endif
  //#ifdef quickapp-webview
  platform = EPlatform.QuickappWebview;
  //#endif
  //#ifdef quickapp-webview-union
  platform = EPlatform.QuickappWebviewUnion;
  //#endif
  //#ifdef quickapp-webview-huawei
  platform = EPlatform.QuickappWebviewHuawei;
  //#endif
  return platform
}

/**平台类型*/
export const Platform: EPlatform = ifDefPlatform()
/**默认导出平台类型*/
export default Platform

/**App*/
export const isAppPlus = Platform == EPlatform.AppPlus
/**App nvue*/
export const isAppPlusNvue = Platform == EPlatform.AppPlusNvue
/**H5*/
export const isH5 = Platform == EPlatform.H5
/**微信小程序*/
export const isMpWeixin = Platform == EPlatform.MpWeixin
/**支付宝小程序*/
export const isMpAlipay = Platform == EPlatform.MpAlipay
/**百度小程序*/
export const isMpBaidu = Platform == EPlatform.MpBaidu
/**字节跳动小程序*/
export const isMpToutiao = Platform == EPlatform.MpToutiao
/**QQ小程序*/
export const isMpQq = Platform == EPlatform.MpQq
/**360小程序*/
export const isMp360 = Platform == EPlatform.Mp360
/**微信小程序/支付宝小程序/百度小程序/字节跳动小程序/QQ小程序/360小程序*/
export const isMp = Platform == EPlatform.Mp
/**快应用通用(包含联盟、华为)*/
export const isQuickappWebview = Platform == EPlatform.QuickappWebview
/**快应用联盟*/
export const isQuickappWebviewUnion = Platform == EPlatform.QuickappWebviewUnion
/**快应用华为*/
export const isQuickappWebviewHuawei = Platform == EPlatform.QuickappWebviewHuawei
/**是否开发环境*/
export const isDevelopment = process.env.NODE_ENV == 'development'
/**是否线上环境*/
export const isProduction = process.env.NODE_ENV == 'production'
/**抖音小程序*/
export const isMpDouyinApp = uni.getSystemInfoSync().appName == 'Douyin'
/**头条小程序*/
export const isMpToutiaoApp = uni.getSystemInfoSync().appName == 'Toutiao'

本文地址:

https://www.cnblogs.com/stumpx/p/13289154.html

 
 
(0)

相关推荐

  • C语言 extern “C” - C语言零基础入门教程

    C语言 extern "C" - C语言零基础入门教程 目录 一.extern "C" 简介 二.extern "C" 实战 1.头文件使用 ...

  • Arduino安装目录探秘.1

    最近一直用Arduino写各种东西,但是也用到了许多非标准板的硬件 对于这个具体的实现过程很有兴趣,也找到了一些资料,故此做记录 这篇文章都是自我探索和经验论,并没有很多引用的资料 首先一切的根源就是 ...

  • 获取地理位置(经度,纬度)H5/小程序/APP

    获取地理位置(经度,纬度) H5/小程序/APP 小程序 一般来说获取小程序可以通过授权getLocationInfo获取,用户进入小程序只会弹出一次授权地理位置信息.方法如下: //封装以下方法到u ...

  • Java生鲜电商平台-逆向物流退换货流程设计(小程序/APP)

    Java生鲜电商平台-逆向物流退换货流程设计(小程序/APP) 说明:在Java生鲜电商平台中,任何一个商品都是存在退换货问题的,那么应该怎么样做才比较好呢?下面就是我的经验分享,希望对大家有用. 什 ...

  • Java生鲜电商平台-商品数据库的设计与SQL下载(小程序/APP)

    Java生鲜电商平台-商品数据库的设计与SQL下载(小程序/APP) 说明:Java生鲜电商平台中根据自己的经验,把相关的商品数据库分享给大家,希望对大家有用. 阅读本文,你需要了解以下内容: 在开始 ...

  • Java生鲜电商平台-接口限流的技术分析与源代码下载(小程序/APP)

    Java生鲜电商平台-接口限流的技术分析与源代码下载(小程序/APP) 说明:在实际的Java生鲜电商平台中,在对外暴露的接口中存在某些人为或者攻击者的恶意调用与攻击,这个时候为了系统的安全,就需要对 ...

  • 开发直播+短视频带货小程序APP系统,这几点一定要注意

    直播带货火了一款又一款产品,很多企业包括MCN机构都有自己搭建直播带货系统的想法,观君科技通过对市面上直播带货平台的调研总结,如果你想要开发一款实用的直播带货APP系统,在开发直播短视频带货系统,以下 ...

  • 长沙小程序APP开发行情及价格

    先声明一下:脱离需求谈价格是没有意义的!本回答仅通过具体的案例来说明这个钱是怎么算出来的. 经常遇到这样的询价: 做一个类似×××的产品需要多少钱? 我能理解对方的意思,是想大概知道做这样一个东西的成 ...

  • 开发智慧扫码点餐小程序APP软件系统要具备哪些功能?

    先说一下餐饮店为什么要有一个智慧扫码点餐系统? 1.扫码下单,可以大大的节省点餐客户的点餐时间; 2.如果智慧点餐小程序系统APP带有分享功能,可以分享给好友,邀请好友扫码点餐, 能够有效提高餐饮店铺 ...

  • 如何设计“企业微信+社群+小程序+APP”的裂变矩阵?

    今年,大家会发现一个趋势,无论是朋友圈的裂变活动,商城下单后的引流动作,还是线下门店加好友送礼品,用户最终都在被引导到企业微信中. 根据企业微信截至到去年年底的数据显示,有80%的500强企业开通了企 ...

  • 古文岛小程序APP下载

    古诗词文言文 下载古文岛App 打开古诗文网App 下载古诗文网App