百度地圖中找不到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的問題、

 

 

以上!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM