/** * 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;