这些js可以另外建一个.js的文件来写,到时候导出使用
有关浏览器类型的信息都藏在USER-AGENT里面,首先读取navigator.userAgent里面的信息,为了方便利用toLowerCase方法转成小写的形式。
1.判断是否是微信环境的
/**
* 判断是否是微信环境
*/
export function isWeiXin () {
var ua = window.navigator.userAgent.toLowerCase()
if (ua.indexOf('micromessenger') > -1) {
return true // 是微信端
} else {
return false
}
}
2.判断是否是移动端的环境
export function isMobile () {
if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
return true // 手机端
} else {
return false // alert('PC端')
}
}
3.我的项目是移动端和pc端写在一个项目里面的,没有分开写,但是页面和路由有分开,如果是移动端的,我会在前面加一个/mb/xxx/:id的路由,如果是pc端的,我会在路由里面/pc/xxx/:id这样来写,到时候在mian.js里面做一个判断
import Vue from 'vue'
import VueRouter from 'vue-router'
// 移动端首页
import mbHome from '../mb/Index'
Vue.use(VueRouter)
const routes = [
{
// 移动端首页
path: '/mb',
name: 'mbHome',
component: mbHome,
meta: {
title: '首页'
}
},
{
// PC端首页
path: '/pc',
name: 'pcHome',
component: pcHome,
meta: {
title: '首页'
}
}
]
const router = new VueRouter({
mode: 'history',
// scrollBehavior (to, from, savedPosition) {
// // 如果你的連結是帶 # 這種
// // to.hash 就會有值(值就是連結)
// // 例如 #3
// if (to.hash) {
// return {
// // 這個是透過 to.hash 的值來找到對應的元素
// // 照你的 html 來看是不用多加處理這樣就可以了
// // 例如你按下 #3 的連結,就會變成 querySelector('#3'),自然會找到 id = 3 的元素
// selector: to.hash
// }
// }
// },
base: window.location.pathname.split('/')[1],
routes
})
export default router
4.在main.js导入,然后做一个判断
import { isWeiXin, isMobile } from './assets/js/utils.js'
router.beforeEach((to, from, next) => {
if (to.meta.title) {
document.title = to.meta.title
}
var urlroute = window.location.pathname.toLowerCase().split('/')
if (store.state.cname !== urlroute[1]) {
store.commit('setCname', urlroute[1])
}
var path = to.path
if (isWeiXin() || isMobile()) {
if (path === '/') {
next({ path: '/mb' })
} else if (path.indexOf('/pc') !== -1) {
path = path.replace('/pc', '/mb')
next({ path: path })
} else {
next()
} else {
if (path === '/') {
next({ path: '/pc' })
} else if (path.indexOf('/mb') !== -1) {
path = path.replace('/mb', '/pc')
next({ path: path })
} else {
next()
}
}
})
网友评论