百度地图APP如何标记位置,打开百度地图APP

  百度地图APP如何标记位置,打开百度地图APP

  最近接手了一个需求,要求混合式开发,前端做好h5后将页面嵌入到ios和机器人中,需要用到百度地图的地图导航。具体功能点如下:

  如果手机端(ios、android)安装了百度地图,点击导航按钮,唤起百度地图应用

  否则,打开网端百度地图导航

  需要用到的百度地图的美国石油学会(美国石油协会)文档链接如下:http://lbsyun.baidu.com/index.php?title=uri/api/ios

  最开始的代码:

  //尝试唤起百度地图应用程序窗口。位置。href=scheme定义变量超时=600;变量开始时间=日期。now();var t=setTimeout(function(){ var end time=date。now();//当成功唤起百度地图应用后,再返回到h5页面,这时结束时间-开始时间一定大于超时200;如果唤起失败,打开网端百度地图导航如果(!开始时间 (结束时间-开始时间)(超时200)){ window。位置。href= http://API。地图。百度一下。“查询字符串”output=html”;} },超时);问题:

  上面这段代码在机器人机器上运行是没有问题的,可是在ios上却始终执行了定时器这个计时器,所以如果在ios端,即使应用处于后台,它的h5代码还是会执行。

  所以需要换一种方式,总的思路是:

  采用轮询的方式在600毫秒内尝试唤起百度地图app,唤起失败后,判断h5是处于前台还是后台,如果是前台,则打开网端百度地图应用程序。不管唤起成功还是失败,过200毫秒后都清除定时器。修改后的代码:

  变量开始时间=日期。now();var count=0;var结束时间=0;var t=setInterval(function(){ count=1;结束时间=日期。now()-开始时间;if(结束时间800){清除间隔(t);}如果(计数30)返回;如果(!(文档。隐藏 文档。WebKit hidden)){ window。位置。href= http://API。地图。百度一下。“查询字符串”output=html”;} }, 20);完整的代码:

  函数唤醒百度(){ var geolocation=new BMap .地理位置();地理定位。getcurrentposition(function(result){ if(this。获取状态()==BMAP _状态_成功){ var lat current=结果。点。lat//获取到的纬度变化LNG电流=结果。点。液化天然气;//获取到的经度if(lat current LNG current){ var scheme= ;//urlObject是我这边地址栏查询参数对象var queryStr=?origin=name:我的位置latlng: latCurrent , LNG current destination= URL对象。lat , URL对象。LNG“region=”URL对象。city coord _ type=BD 09 ll mode=driving ;if (isIOS()) { //ios端scheme=百度地图://地图/方向查询字符串;} else { //android端scheme= BD app://map/direction 查询字符串;} //主要实现代码窗户。位置。href=scheme变量开始时间=日期。now();var count=0;var结束时间=0;var t=setInterval(function(){ count=1;结束时间=日期。now()-开始时间;if(结束时间800){清除间隔(t);}如果(计数30)返回;如果(!(文档。隐藏 文档。WebKit hidden)){ window。位置。href= http://API。地图。百度一下。“查询字符串”output=html”;} }, 20);窗户。onblur=function(){ clear interval(t);};} else { alert(获取不到定位,请检查手机定位设置);} } });}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: