| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- /**
- * SoundChain 第三方平台功能聚合
- * @version 1.0.3
- * @author lidongtony
- * @param {String} name - 厂商+平台名称
- * @param {String} provider - 厂商
- * @param {String} platform - 平台名称
- * @param {String} os - 系统型号
- * @param {Object} device - 设备信息
- */
- import { isEmpty } from 'lodash-es';
- // #ifdef H5
- import { isWxBrowser } from '@/common/helper/utils';
- // #endif
- const device = uni.getWindowInfo();
- const os = uni.getDeviceInfo().platform;
- let name = '';
- let provider = '';
- let platform = '';
- let isWechatInstalled = true;
- // #ifdef H5
- if (isWxBrowser()) {
- name = 'WechatOfficialAccount';
- provider = 'wechat';
- platform = 'officialAccount';
- } else {
- name = 'H5';
- platform = 'h5';
- }
- // #endif
- // #ifdef APP-PLUS
- name = 'App';
- platform = 'openPlatform';
- // 检查微信客户端是否安装,否则AppleStore会因此拒绝上架
- if (os === 'ios') {
- isWechatInstalled = plus.ios.import('WXApi').isWXAppInstalled();
- }
- // #endif
- // #ifdef MP-WEIXIN
- name = 'WechatMiniProgram';
- platform = 'miniProgram';
- provider = 'wechat';
- // #endif
- if (isEmpty(name)) {
- uni.showToast({
- title: '暂不支持该平台',
- icon: 'none',
- });
- }
- /**
- * 检查网络
- * @param {Boolean} silence - 静默检查
- */
- async function checkNetwork() {
- const networkStatus = await uni.getNetworkType();
- if (networkStatus.networkType == 'none') {
- return Promise.resolve(false);
- }
- return Promise.resolve(true);
- }
- // 获取小程序胶囊信息
- const getCapsule = () => {
- // #ifdef MP
- let capsule = uni.getMenuButtonBoundingClientRect();
- if (!capsule) {
- capsule = {
- bottom: 56,
- height: 32,
- left: 278,
- right: 365,
- top: 24,
- width: 87,
- };
- }
- return capsule;
- // #endif
- // #ifndef MP
- return {
- bottom: 56,
- height: 32,
- left: 278,
- right: 365,
- top: 24,
- width: 87,
- };
- // #endif
- };
- const capsule = getCapsule();
- // 标题栏高度
- const getNavBar = () => {
- return device.statusBarHeight + 44;
- };
- const navbar = getNavBar();
- const _platform = {
- name,
- device,
- os,
- provider,
- platform,
- checkNetwork,
- capsule,
- navbar,
- isWechatInstalled,
- };
- export default _platform;
|