import { Message } from 'element-ui' // import BMap from "./mobilePositionLID"; import RemoGeoLocation from './mobilePositionLID1' const mobilePosition = { state: { getSPosition: null }, mutations: { GET_NOWPOSITION (state, val) { const outData = val || function (res) { console.log(res) } const startTime = new Date().getTime() let endTime console.log(startTime, 'startTime') const times = (dateBegin) => { var dateDiff = new Date().getTime() - dateBegin // 时间差的毫秒数 var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000)) // 计算出相差天数 var leave1 = dateDiff % (24 * 3600 * 1000) // 计算天数后剩余的毫秒数 var hours = Math.floor(leave1 / (3600 * 1000)) // 计算出小时数 // 计算相差分钟数 var leave2 = leave1 % (3600 * 1000) // 计算小时数后剩余的毫秒数 var minutes = Math.floor(leave2 / (60 * 1000)) // 计算相差分钟数 // 计算相差秒数 var leave3 = leave2 % (60 * 1000) // 计算分钟数后剩余的毫秒数 var seconds = Math.round(leave3 / 1000) var leave4 = leave3 % (60 * 1000) // 计算分钟数后剩余的毫秒数 var minseconds = Math.round(leave4 / 1000) var timeFn = '耗时:' + dayDiff + '天 ' + hours + '小时 ' + minutes + ' 分钟' + seconds + ' 秒' + minseconds + '毫秒' console.log(timeFn) return timeFn } if (navigator.geolocation) { const success = function (position) { console.log(position) times(startTime) var lat = position.coords.latitude var lon = position.coords.longitude console.log('成功返回经纬度信息') Message({ showClose: true, message: '成功返回经纬度信息' + lon + '_' + lat + '--反应时间:' + times(startTime), type: 'success', duration: 0 }) console.log(lon, lat, '成功') outData([lon, lat]) } const error = function (error) { // console.log(error, "失败"); outData(['失败', '失败']) let msg = 'none' switch (error.code) { case error.PERMISSION_DENIED: msg = 'User denied the request for Geolocation.' break case error.POSITION_UNAVAILABLE: msg = 'Location information is unavailable.' break case error.TIMEOUT: msg = 'The request to get user location timed out.' break case error.UNKNOWN_ERROR: msg = 'An unknown error occurred.' break } Message({ showClose: true, message: '定位获取失败-msg:' + msg + '------' + error.message + '--反应时间:' + times(startTime), type: 'error', duration: 0 }) } const options = { enableHighAccuracy: true, // timeout: 5000, maximumAge: 0 } // console.log(navigator); // console.log(navigator.platform); Message({ showClose: true, message: navigator.platform, type: 'error', duration: 0 }) // console.log(CLLocationManager); // return; if (navigator.platform === 'iPhone') { // iphone请求权限 // let remoGeo = new RemoGeoLocation(); // navigator.geolocation.getCurrentPosition = function () { // return remoGeo.getCurrentPosition.apply(remoGeo, arguments); // }; // navigator.geolocation.watchPosition = function () { // return remoGeo.watchPosition.apply(remoGeo, arguments); // }; // Message({ // showClose: true, // message: "ipone", // type: "error", // duration: 0, // }); // console.log(CLLocationManager); // Message({ // showClose: true, // message: CLLocationManager, // type: "error", // duration: 0, // }); // return; } state.getSPosition = navigator.geolocation.getCurrentPosition( success, error, options ) } else { console.log('不支持navigator.geolocation') Message({ showClose: true, message: '不支持定位', type: 'warning', duration: 0 }) return '不支持navigator.geolocation' } }, CLOSE_NOWPOSITION (state) { // if (state.getSPosition && navigator.geolocation) { // navigator.geolocation.clearWatch(state.getSPosition); // state.getSPosition = null; // } } }, actions: {} } export default mobilePosition