因爲,ionic cordova-plugin-geolocation android插件不能使用,原因是google的服務被禁掉,這裏是使用百度的定位SDK解決,手機定位的問題。但是,因爲百度插件使用的是網絡定位,因此存在誤差較大的情況。
1.申請Android 定位SDK,這裏需要到百度地圖APi的控制檯申請 Android下的定位SDK的APi KEY。我申請的key爲如下:apk5DEdAHpGNGeIw8dK0LYY3OrNdXQ07
申請key需要sha1值和package值,首先 SHA1值是可以這樣獲取:
1. 找到電腦緩存andriod sdk配置文件的文件夾,我的文件夾地址是C:\Users\Derek\.android;
2. 找到 debug.keystore 文件,然後打開cmd。輸入以下命令:keytool -list -v -keystore debug.keystore(默認密碼是android。同理,SHA1可以從其它的keystore裏面獲取)
3. 從得到的信息裏面找到SHA1值
然後,package值,可以從項目文件夾中的AndroidManifest.xml裏面獲取
2.申請完Android-定位SDK後,下載cordova-plugin-baidumaplocation插件。在項目文件夾下面,輸入ionic cordova plugin add cordova-plugin-baidumaplocation --variable ANDROID_KEY="apk5DEdAHpGNGeIw8dK0LYY3OrNdXQ07" --variable IOS_KEY="skm1oP6HDZW33atFknc0dSIf0MnFellH"
其中,android和ios的key需要不一樣的
3.在ionic2項目中,使用這個插件
因爲,插件在運行時,在全局聲明瞭變量,因此需要我們再次聲明
定位的方法
!!特別注意的地方,百度的key需要申請Android sdk
!!百度的key,分爲開發版和發佈版的。填寫sha1值,請區分正確填寫,不然影響後面使用,發佈版的key,請使用簽名的keystore去獲取
!!如果安裝cordova插件太慢了,請到github上拉取代碼本地,然後添加本地插件的方式添加即可