Несколько дней назад United Black Card сообщила о необходимости открыть приложение Baidu или Amap APP в H5, поэтому я проверил соответствующие документы в Интернете и разместил ссылки ниже: 1. Amap 2. Baidu Map
Конкретная идея заключается в том, что при нажатии на карту сначала запрашивается ссылка приложения. Если в течение 800 миллисекунд нет ответа, перейдите по ссылке H5. Недостаток этого подхода заключается в том, что он перейдет на ссылку H5 независимо от того, перейдет ли он на приложение или нет. Если у вас есть хорошие идеи, пожалуйста, прокомментируйте.
Ниже приведен соответствующий код:
function ToggleAppAndH5( AppUrl , AppCallback = () => {}){ // Сначала переходим к приложению const ifr = document.createElement('iframe'); ifr.src = AppUrl; ifr.style.display = 'none document'; .body.appendChild(ifr); setTimeout(function(){ document.body.removeChild(ifr); }, 3000); // Вызов ссылки H5 через 800 миллисекунд let timer = setTimeout(function () {clearTimeout(timer); AppCallback(); }, 800); window.onblur = function () {clearInterval(timer }); ){ // Размещаем здесь соответствующие ссылки H5 if (mapType === 'baidu') {frameDom.attr('src', http://api.map.baidu.com/direction?origin=latlng:+ curLat +,+ curLng +|name:+ currAddr +&destination=latlng:+ elat +,+ elng +|name:+ eaddr +®ion= + cityName +&mode=driving&output=html&src=com.youbei.chefu } else if (mapType === 'amap') { frameDom.attr('src', https://ditu.amap.com/dir?type=car&from[lnglat]=+ curLng +,+ curLat +&from[name]=+currAddr+&to[lnglat]=+ elng + ,+ elat +&to[name]=+eaddr+&src=com.youbei.chefu); } } const u = navigator.userAgent; const isiOS = !!u.match(//(i[^;]+;( U;)? CPU.+Mac OS X/); // терминал iOS
1. Гаоде
// Заголовки Apple и Android различаются. let proto = isiOS ? 'iosamap://path' : 'amapur://route/plan' ; const AppUrl = proto + ?t= 0&slat=+curLat+&slon=+curLng+ &sname= +currAddr+&dlat=+elat+&dlon=+elng+&dname=+eaddr+&src=xxx; ToggleAppAndH5(AppUrl,Обратный вызов)
2. Байду
// Заголовки Apple и Android различаются let proto = isiOS ? 'baidumap://' : 'bdapp://' const AppUrl = proto + map/direction?region=+cityName+&origin=latlng:+ curLat+,+ curLng + |name:+ currAddr +&destination=latlng:+ elat +,+ elng +|name:+ eaddr +&coord_type=bd09ll&mode=driving&src=com.youbei.chefu; ToggleAppAndH5(AppUrl, обратный вызов)
Выше приведено все содержание этой статьи. Я надеюсь, что она будет полезна для изучения всеми. Я также надеюсь, что все поддержат сеть VeVb Wulin.