ionic開發webApp 百度定位

smartsean發表於2017-12-20

反思

好久沒寫部落格了,最近比較忙,這段時間忙的差不多了,部落格一定要堅持寫下去。

概述

最近客戶提出了新的需求:在客戶操作節點增加地圖定位,以便獲取操作節點時候的地理位置,經過調研發現,官方提供的有個叫cordova-plugin-geolocation的外掛,在ios上可以直接使用,但是在天朝因為某些網路原因不能給正常使用,並且在網上很少能夠搜尋到關於這方面的文章,就去在github上找一些第三方提供的外掛去實現。這裡記錄一下,防止以後走彎路。

1. 申請百度的祕鑰 百度祕鑰申請地址

2. 安裝外掛:

 ionic plugin add https://github.com/mrwutong/cordova-qdc-baidu-location --variable API_KEY="<API_KEY>"	
複製程式碼

3. 使用方法

在需要獲取位置資訊的地方直接使用以下程式碼:

 baidu_location.getCurrentPosition(function ( message ) {
            console.debug(message);
        }, function ( message ) {
            console.debug(message);
        });
複製程式碼

第一個函式是成功的回撥,第二個是失敗的回撥。

##切記

  1. 在安裝了外掛之後,千萬記得要先ionic remove platform android,然後再執行ionic platform add android命令,不然外掛不能正確的執行,事實上,每一次修改外掛的內容,都要執行上面的兩個操作,才能使外掛正常執行
  2. 如果你使用sdk23版本進行打包的,你就要注意了,在最新的android6.0上面,和以前的許可權授權機制已經不同,如果使用23版本的進行打包,在android6.0以上的手機上執行不會給出獲取地理位置許可權的彈窗,務必改為23以下的版本進行編譯
  3. 獲取成功的話,預設是隻給出經緯度資訊的,如果要獲取定位的地址的具體資訊,要在外掛裡面的BaiduLocation.java檔案把 option.setIsNeedAddress(false); 改為 option.setIsNeedAddress(true);
  4. 預設返回的是一個字串,對於現在json這麼流行的情況下,當然是獲得json格式的資料比較讓人喜歡,這個時候坐著已經替我們封裝好了,只需要在BaiduLocation.java檔案中把 PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, sb.toString()); 改為 PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, json.toString());,你就可以獲得一個json格式的字串了

最後

上面的內容大多數是在github上找到的,這裡只是寫上了自己遇到的一些問題,分享出來,這裡附上github地址:GitHub地址

相關文章