web 端 調取導航總結
阿新 • • 發佈:2018-12-19
1 跳到百度網頁版
location.href="http://api.map.baidu.com/direction?origin="+latCurrent+","+lngCurrent+"&destination=39.89778,116.709684&mode=driving®ion=北京&output=html";
2 js 直接調取 手機已經安裝的 app
//獲取瀏覽器資訊 var browser = { ua : function() { var u = navigator.userAgent; var isChrome = u.match(/Chrome\/([\d.]+)/) || u.match(/CriOS\/([\d.]+)/); var isAndroid = u.match(/(Android);?[\s\/]+([\d.]+)?/); var iosVersion = function() { if (/iP(hone|od|ad)/.test(navigator.platform)) { var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/); return [ parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10) ]; } }(); var chromeVersion = function() { var chrome = navigator.userAgent.match(/Chrome\/(\d+)\./); if (chrome) { return parseInt(chrome[1], 10); } }(); var ios9 = iosVersion && iosVersion[0] >= 9; var chrome18 = isChrome && isAndroid && chromeVersion && chromeVersion > 18; return { // 移動終端瀏覽器版本資訊 trident : u.indexOf('Trident') > -1, // IE核心 presto : u.indexOf('Presto') > -1, // opera核心 webKit : u.indexOf('AppleWebKit') > -1, // 蘋果、谷歌核心 gecko : u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, // 火狐核心 mobile : !!u.match(/AppleWebKit.*Mobile.*/), // 是否為移動終端 iOS : !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // ios終端 android : u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, // android終端或uc瀏覽器 iPhone : u.indexOf('iPhone') > -1, // 是否為iPhone或者QQHD瀏覽器 iPad : u.indexOf('iPad') > -1, // 是否iPad webApp : u.indexOf('Safari') == -1, // 是否web應該程式,沒有頭部與底部 weChat : u.indexOf('MicroMessenger') > -1, UC : u.indexOf('UCBrowser') > -1, u3 : u.indexOf('U3') > -1, chrome : u.indexOf('Chrome') > -1, windowsPhone : u.indexOf("Windows Phone") > -1, samsung : u.indexOf("Samsung") > -1, QQ : (u.match(/\sQQ/i) != null ? u.match(/\sQQ/i).toLowerCase() == " qq" : false), isChrome : isChrome, isAndroid : isAndroid, iosVersion : iosVersion, chromeVersion : chromeVersion, ios9 : ios9, chrome18 : chrome18 }; }() } var ua = browser.ua; // 開啟地圖App,開始導航 function openMapApp(lat, lng, addr) { // 地圖uri api陣列 var uri = new Array(); if (ua.android) { // 百度地圖uri api uri[0] = "bdapp://map/navi?location=" + lat + "," + lng + "&query=" + addr; // 高德地圖uri api uri[1] = "androidamap://navi?sourceApplication=xlwx&poiname=" + addr + "&lat=" + lat + "&lon=" + lng + "&dev=1&style=2"; // 騰訊地圖uri api uri[2] = "qqmap://map/marker?marker=coord:" + lat + "," + lng + ";title:" + addr + "&referer=xlwx"; } else if (ua.iOS) { // 百度地圖uri api uri[0] = "baidumap://map/navi?location=" + lat + "," + lng + "&query=" + addr; // 高德地圖uri api uri[1] = "iosamap://navi?sourceApplication=xlwx&poiname=" + addr + "&lat=" + lat + "&lon=" + lng + "&dev=1&style=2"; // 騰訊地圖uri api uri[2] = "qqmap://map/marker?marker=coord:" + lat + "," + lng + ";title:" + addr + "&referer=xlwx"; // 蘋果地圖uri api uri[3] = "http://maps.apple.com/?sll=" + lat + "," + lng + "&address=" + addr; } //呼叫uri if(uri.length == 0){ return; } window.location.href = uri[0]; //啟動定時器time1 var time1 = setTimeout(function() { // 若啟動應用,則js會被中斷較長時間,超出此範圍 window.location.href = uri[1]; }, 2000); //啟動定時器time2 var time2 = setTimeout(function() { // 若啟動應用,則js會被中斷較長時間,超出此範圍 window.location.href = uri[2]; }, 4000); //清除定時器 window.beforeunload = function() { if(time1 != null){ clearTimeout(time1); } if(time2 != null){ clearTimeout(time2); } } window.pagehide = function() { if(time1 != null){ clearTimeout(time1); } if(time2 != null){ clearTimeout(time2); } } window.onblur = function() { if(time1 != null){ clearTimeout(time1); } if(time2 != null){ clearTimeout(time2); } } }