import storage from './storage'; export function msg(content, time = 3000) { uni.showToast({ icon: 'none', title: content, duration: time }); } export function showLoading(content = "加载数据中...", mask = true) { uni.showLoading({ title: content, mask: mask }); } export function hideLoading(timer = 0) { if (timer > 0) { var t = setTimeout(function() { uni.hideLoading(); clearTimeout(t); }, timer); } else { uni.hideLoading(); } } export function in_array(search, array) { let flag = false; for (let i in array) { if (array[i] == search) { flag = true; break; } } return flag; } export function isDataType(data, type) { return Object.prototype.toString.call(data) === '[object ' + type + ']'; } export function ltrim(str, char) { let pos = str.indexOf(char); let sonstr = str.substr(pos + 1); return sonstr; } export function rtrim(str, char) { let pos = str.lastIndexOf(char); let sonstr = str.substr(0, pos); return sonstr; } /** * 保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。 */ export function navigateTo(url, params) { uni.navigateTo({ url: parseUrl(url, params) }) } /** * 关闭当前页面,跳转到应用内的某个页面。 */ export function redirectTo(url, params) { uni.redirectTo({ url: parseUrl(url, params) }); } /** * 关闭所有页面,打开到应用内的某个页面。 */ export function reLaunch(url, params) { uni.reLaunch({ url: parseUrl(url, params) }); } /** * 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。 */ export function switchTab(url, params) { uni.switchTab({ url: parseUrl(url, params) }); } /** * 关闭当前页面,返回上一页面或多级页面 */ export function navigateBack(delta) { uni.navigateBack({ delta: delta }); } /** * 预加载页面,是一种性能优化技术。被预载的页面,在打开时速度更快。 */ export function preloadPage() { uni.preloadPage({ url: parseUrl(url, params) }); } export function prePage() { let pages = getCurrentPages(); let prePage = pages[pages.length - 2]; // #ifdef H5 return prePage; // #endif return prePage.$vm; } /** * rpx转px * @param int|float num */ export function rpx2px(num) { // const info = uni.getSystemInfoSync() // let scale = 750 / info.windowWidth; // return (Number.isNaN(parseFloat(num)) ? 0 : parseFloat(num)) / scale; return uni.upx2px(num); } /** * @param int|float num */ export function px2rpx(num) { return num / (uni.upx2px(num) / num); } export function getSystemInfo() { const info = uni.getSystemInfoSync(); return { w: info.windowWidth, h: info.windowHeight }; } function parseUrl(url, params) { let arr = []; let string = ''; for (let i in params) { arr.push(i + "=" + params[i]); } string = "/pages/" + url; if (arr.length > 0) { string += "?" + arr.join("&"); } return string; } export function platformAgent() { let obj = { type: "", name: "", isWechat: false, isMini: false }; // #ifdef APP-PLUS let platform = uni.getSystemInfoSync().platform; obj.type = "app"; obj.name = platform; // #endif // #ifdef H5 obj.type = "h5"; obj.name = window.navigator.userAgent; obj.isWechat = window.navigator.userAgent.toLowerCase().indexOf("micromessenger") !== -1; // 检查是否在微信公众号打开 // #endif // #ifdef MP obj.isMini = true; // #endif // #ifdef MP-WEIXIN obj.type = "mp-weixin"; obj.name = "微信小程序"; // #endif // #ifdef MP-ALIPAY obj.type = "mp-alipay"; obj.name = "支付宝小程序"; // #endif // #ifdef MP-BAIDU obj.type = "mp-baidu"; obj.name = "百度小程序"; // #endif // #ifdef MP-TOUTIAO obj.type = "mp-toutiao"; obj.name = "字节跳动小程序"; // #endif // #ifdef MP-QQ obj.type = "mp-qq"; obj.name = "QQ小程序"; // #endif // #ifdef MP-360 obj.type = "mp-360"; obj.name = "360小程序"; // #endif return obj; } export function isIOS() { return !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); } export function getShareUrl(url) { let users = storage.getJson("users"); // #ifdef H5 || APP-PLUS if (users != null) { url += '#u=' + users.id; } // #endif return url; } export function iCopy(content) { return new Promise((resolve, reject) => { if (!content) { reject('复制的内容不能为空 !'); } else { // H5端的复制逻辑 // #ifdef H5 if (!document.queryCommandSupported('copy')) { reject('浏览器不支持'); } else { let textarea = document.createElement("textarea") textarea.value = content textarea.readOnly = "readOnly" document.body.appendChild(textarea) textarea.select() textarea.setSelectionRange(0, content.length) let result = document.execCommand("copy") if (result) { resolve("内容复制成功") } else { reject("复制失败,请检查h5中调用该方法的方式,是不是用户点击的方式调用的,如果不是请改为用户点击的方式触发该方法,因为h5中安全性,不能js直接调用!") } textarea.remove() } // #endif // 小程序端 和 app端的复制功能 //#ifndef H5 uni.setClipboardData({ data: content, success: function() { resolve("复制成功") }, fail: function() { reject("复制失败") } }); //#endif } }); }