- 配置路由拦截
(uni-simple-router官网地址,讲解很清晰)
使用2.x版本注意事项
不能使用uni.redirectTo跳转
// uni.redirectTo({
// url: 'pages/login/loginPage'
// });
next('/pages/login/loginPage')
- 解决真机首屏加载时间
// 在app.vue onLaunch方法里使用
switch (uni.getSystemInfoSync().platform) {
case 'android':
//console.log('运行Android上')
plus.navigator.closeSplashscreen();
break;
case 'ios':
//console.log('运行iOS上')
plus.navigator.closeSplashscreen();
break;
default:
//console.log('运行在开发者工具上')
break;
}
- 适配自定义顶部导航栏手机端自适应高度
//
uni.getSystemInfo({
success: function(e) {
// #ifndef MP
Vue.prototype.StatusBar = e.statusBarHeight;
if (e.platform == 'android') {
Vue.prototype.CustomBar = e.statusBarHeight + 50;
} else {
Vue.prototype.CustomBar = e.statusBarHeight + 45;
};
// #endif
// #ifdef MP-WEIXIN
Vue.prototype.StatusBar = e.statusBarHeight;
let custom = wx.getMenuButtonBoundingClientRect();
Vue.prototype.Custom = custom;
Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
// #endif
// #ifdef MP-ALIPAY
Vue.prototype.StatusBar = e.statusBarHeight;
Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight;
// #endif
}
})
Vue.prototype.StatusBar = e.statusBarHeight; 获取的是手机状态栏的高度。
最后在页面最外层的view中动态绑定这个高,:style="{paddingTop:StatusBar +‘px’}"
这样一来,app的页面就能根据不同手机,不同状态栏高度而改变距离顶部的高度
- 动态修改默认导航栏样式
//修改顶部文字
uni.setNavigationBarTitle({
title: "首页" //这是修改后的导航栏文字
})
//修改顶部文字颜色以及导航栏背景色
uni.setNavigationBarColor({
frontColor: "#ffffff", //文字颜色
backgroundColor: "#007AFF" //底部背景色
})
- 关闭app
if (uni.getSystemInfoSync().platform == 'ios') {
console.log(222);
plus.ios.import("UIApplication").sharedApplication().performSelector("exit")
} else if (uni.getSystemInfoSync().platform == 'android') {
console.log(333);
plus.runtime.quit();
}