百度地图中找不到BMap的解决

一般情况下是引用的问题,产生的原因大概有两种

1.不同架构的引用方式不同,引用js的方式不同导致

2.自身调用顺序有误

官方的引用方式是使用标签引入,示例

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>

还有官方提供的https的引用方式,示例

<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>

在引用中,是可以使用callback的,示例  注意,此方式确实能保证加载完成再调用其他函数,不会造成顺序问题

function loadJScript() {
        var script = document.createElement("script");
        script.type = "text/javascript";
        script.src = "http://api.map.baidu.com/api?v=2.0&ak=TuIXlHOOl8dyN4T60vCxqpeg3mfO2uOj&callback=init";
        document.body.appendChild(script);
    }
    loadJScript();

说一个遇到的奇葩案例:

本人开发过程中服务在本机上,于是用手机访问无线网,然后访问本机上的项目,发现:

1.本机上的pc版本,或者是浏览器模拟手机版h5,都可以打开百度地图

2.使用手机连接wifi打不开百度地图

3.将项目部署在外网服务器上,使用外网访问,能够打开百度地图

最后找了好久,我这的wifi上不去网的原因是手机没有设置dns服务器。。。

除了以上引用方式之外,我们可以将自己的百度地图的使用的链接放到浏览器中,会发现获得到这样的结果:

于是乎,该地址只是在百度上请求一个地址,来加载一个script标签,写入百度map的jsapi了。于是将其api输入到浏览器url中,得到下面的结果

 此文为js的实际代码,于是我们既可以将此代码down到本机,又可以写在script标签中,示例

<script type="text/javascript" src="http://api.map.baidu.com/getscript?v=2.0&ak=aAgtfUXdoQOxb*************hokCO&services=&t=20190123111209"></script>

这种方式一定程度上能够避免加载问题,有些浏览器不允许使用load的问题、

以上!

猜你喜欢

转载自www.cnblogs.com/liuyuhangCastle/p/10517017.html