Javascript 如何在android手机上使用本地Google Maps.html文件平移到当前位置?

Javascript 如何在android手机上使用本地Google Maps.html文件平移到当前位置?,javascript,android,html,google-maps,currentlocation,Javascript,Android,Html,Google Maps,Currentlocation,我们的目标是在android手机上安装一个本地.html文件,该文件可以通过标准的web浏览器打开,该浏览器具有在谷歌地图上平移到当前位置的功能。目前,平移到当前位置在android手机上的mi浏览器上工作,但最终用户希望它在标准web浏览器(如Chrome)上工作 预期结果:顶部的“平移到当前位置”按钮可将谷歌地图平移到手机的当前位置。 实际结果:在chrome、firefox、edge web浏览器上,可以打开html文件,但按钮不会平移到手机上的当前位置。在笔记本电脑的chrome浏览器中

我们的目标是在android手机上安装一个本地.html文件,该文件可以通过标准的web浏览器打开,该浏览器具有在谷歌地图上平移到当前位置的功能。目前,平移到当前位置在android手机上的mi浏览器上工作,但最终用户希望它在标准web浏览器(如Chrome)上工作

预期结果:顶部的“平移到当前位置”按钮可将谷歌地图平移到手机的当前位置。 实际结果:在chrome、firefox、edge web浏览器上,可以打开html文件,但按钮不会平移到手机上的当前位置。在笔记本电脑的chrome浏览器中,该按钮不会平移到当前位置。在安卓手机上的小米浏览器(来自小米)上,按钮确实会响应并平移到当前位置

由于我是HTML/JS的初学者,我不知道这个错误是可以在代码中修复,还是可以通过web浏览器中的设置修复。如果能找到一种在android手机上使用“平移到当前位置”功能查看本地html的方法,并理解它为什么不起作用,那就太好了

如果要运行代码,则应检索GoogleMapsAPI键。下面是示例代码:

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map-canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key={GOOGLE_MAPS_API_KEY}&sensor=true">
    </script>
    <script type="text/javascript">

function initialize() {

var mapOptions = {
    zoom: 15,
    center: new google.maps.LatLng(51.924003,4.4601963),
    mapTypeId: google.maps.MapTypeId.HYBRID }
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
infoWindow = new google.maps.InfoWindow();
const locationButton = document.createElement("button");
  locationButton.textContent = "Pan to Current Location";
  locationButton.classList.add("custom-map-control-button");
  map.controls[google.maps.ControlPosition.TOP_CENTER].push(locationButton);
  locationButton.addEventListener("click", () => {
    // Try HTML5 geolocation.
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(
        (position) => {
          const pos = {
            lat: position.coords.latitude,
            lng: position.coords.longitude,
          };
          infoWindow.setPosition(pos);
          infoWindow.setContent("Location found.");
          infoWindow.open(map);
          map.setCenter(pos);
        },
        () => {
          handleLocationError(true, infoWindow, map.getCenter());
        }
      );
    } else {
      // Browser doesn't support Geolocation
      handleLocationError(false, infoWindow, map.getCenter());
    }
  });

}

google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
  <div id="map-canvas"/>
  </body>
</html>

html{高度:100%}
正文{高度:100%;边距:0;填充:0}
#地图画布{高度:100%}
函数初始化(){
变量映射选项={
缩放:15,
中心:新google.maps.LatLng(51.924003,4.4601963),
mapTypeId:google.maps.mapTypeId.HYBRID}
var map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
infoWindow=new google.maps.infoWindow();
const locationButton=document.createElement(“按钮”);
locationButton.textContent=“平移到当前位置”;
locationButton.classList.add(“自定义地图控制按钮”);
map.controls[google.maps.ControlPosition.TOP\u CENTER]。按(locationButton);
locationButton.addEventListener(“单击”,()=>{
//试试HTML5地理定位。
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(
(职位)=>{
常数位置={
纬度:位置坐标纬度,
lng:position.coords.longitude,
};
信息窗口。设置位置(pos);
setContent(“找到位置”);
打开(地图);
地图设置中心(pos);
},
() => {
handleLocationError(true,infoWindow,map.getCenter());
}
);
}否则{
//浏览器不支持地理位置
handleLocationError(false,infoWindow,map.getCenter());
}
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);

当前的解决方案是通过Azure将.html发布为网站。此网站可通过手机浏览器访问,并具有“平移到当前位置”功能

javascript代码无法通过手机上的local.html文件工作的最可能原因是手机浏览器在处理本地html/javascript时的安全性