import { Message } from "element-ui"; // import BMap from "./mobilePositionLID"; import RemoGeoLocation from "./mobilePositionLID1"; const mobilePosition = { state: { getSPosition: null }, mutations: { GET_NOWPOSITION(state, val) { let outData = val || function (res) { console.log(res); }; let startTime = new Date().getTime(), endTime; console.log(startTime, "startTime"); let 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) { let 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]); }; let 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, }); }; let 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;