前言
首先需要有一个自己封装的方法,话不多说,直接上代码!
方法文件(common.js)
const getnav = (page, type, param = 'token') => {// type 判断是否 需要验证登录if (!page) return uni.showModal({title: '提示',content: '功能暂未开通~',showCancel: false})let user = uni.getStorageSync(param)let pages = getCurrentPages();console.log(pages)if (type) {if (!user) {// 优化 记录要跳转缓存的页面return uni.navigateTo({url: "/pages/login/login"})}}uni.navigateTo({url: page})
}
const getback = (delta = 1, date = 500) => {setTimeout(() => {uni.navigateBack({delta,});}, date)
}
const gettab = (url, date = 0) => {setTimeout(() => {uni.switchTab({url,});}, date)
}
const getclose = (url, date = 0) => {setTimeout(() => {uni.redirectTo({url,});}, date)
}
const gettitle = (title, type = 'none', duration = 1500) => {uni.showToast({title,icon: type,duration,})
}
// 弹框
const getopen = ((title, content, showCancel = true, confirmColor = '#1f73f4', confirmText = '确定', cancelText = '取消',cancelColor = '#000000') => {return new Promise((resolve, reject) => {uni.showModal({title,content,showCancel,cancelText,cancelColor,confirmText,confirmColor,success: (result) => {resolve(result)},fail: (err) => {reject(err)},});})
})
// 自定义 导航头标题
const getnavtitle = (title, ) => {uni.setNavigationBarTitle({title,});
}
// 清除缓存
const romset =(param)=>{uni.removeStorageSync(param);
}
// 缓存
const getset = (param, value) => {uni.setStorageSync(param, value);
}
// 获取缓存
const postset = (type = 1,param = 'token') => {let token = uni.getStorageSync(param);let show;if (type == 1) {if (token) {show = true}else {show = false}}if(type==2){show= token}return show
}
// 标题颜色
const getColor = (backgroundColor, frontColor = '#ffffff') => {uni.setNavigationBarColor({frontColor,backgroundColor,animation: {duration: 400,timingFunc: 'easeIn'}})
}
// 关闭当前页 去其他
const getLaunch = (url) => {uni.reLaunch({url,});
}
const getwx = ((data, type) => {return new Promise((resolve, reject) => {uni.requestPayment({provider: 'wxpay',timeStamp: data.timeStamp,nonceStr: data.nonceStr,package: data.package,signType: data.signType,paySign: data.paySign,success: (result) => {resolve(result)},fail: (err) => {setTimeout(()=>{uni.showToast({title: '支付失败!',icon: 'none'})},500)if (type == 1) {setTimeout(() => {this.$uni.getclose('/pagesA/order/order?index=1')}, 500)} else {let obj = {errMsg: 'error'}resolve(obj)}},})})
})
export default {getnav,gettitle,getopen,getnavtitle,getset,getback,gettab,getColor,getLaunch,getclose,getwx,postset,romset
}
在main.js中挂载
使用方法
this.$uni.gettitle('你是猪猪!')
this.$uni.getLaunch('/去你心里!')