国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
phonegap利用百度地圖sdk定位
近期的一個(gè)phonegap項(xiàng)目把我做的焦頭爛額,最讓人蛋疼的就是安卓4.1.x對(duì)html5的定位獲取經(jīng)緯度有個(gè)無比巨大的坑,一般我們利用如下代碼進(jìn)行html5的定位
navigator.geolocation.getCurrentPosition(function(pos){
            alert(JSON.stringify(pos))
        },function(err){
               alert(JSON.stringify(err))
          }, {
enableHighAccuracy: false,
timeout: 60*1000,
maximumAge: 1000*60*10
});

上述代碼在ios上一切正常,在安卓4.3及以后的機(jī)器也可以正常訪問,但是在安卓4.1上就會(huì)出現(xiàn)timeout,如果我們把 enableHighAccuracy 設(shè)置為 true,那么在室外,空氣良好的地方,安卓4.1將能夠通過衛(wèi)星進(jìn)行定位,但是速度巨慢,其實(shí)我們很多時(shí)候并不是想要非常精準(zhǔn)的定位信息,完全可以通過基站或者wifi來定位,雖然html5提供給了我們這樣的接口,但是安卓4.1上支持的不是很好。

另外一個(gè)巨坑也直接影響了我對(duì)這個(gè)問題的判斷,如果我重啟了安卓4.1的機(jī)器,那么上述代碼將能夠正常跑大約幾小時(shí),甚至半天,可是到了第二天又會(huì)出現(xiàn)同樣的問題,無盡的timeout??偛荒茏尶蛻裘看问褂枚ㄎ还δ芏贾貑⒁淮螜C(jī)器吧,涉及這個(gè)問題的機(jī)器有包括我的華為,三星note2,oppo等目前主流的安卓4.1系統(tǒng)的機(jī)子,在另外幾臺(tái)例如glasky3、紅米等安卓4.3的機(jī)器上沒有出現(xiàn)。

然后我直接將上述代碼在瀏覽器中運(yùn)行,發(fā)現(xiàn)安卓4.1也是無法跑起來,天真的我以為是安卓4.1對(duì)html5的接口支持問題,于是利用cordova加載geolocation插件,想利用cordova的native方法解決這個(gè)問題,但是問題依舊,其中意外的發(fā)現(xiàn)我的華為和note2能夠跑起來了,其實(shí)只不過碰巧剛重啟過而已。

這個(gè)是我在stackoverflow上發(fā)的問題,碰到這類問題的中外友人巨多。

如何填補(bǔ)這個(gè)坑呢?我搜遍了整個(gè)網(wǎng)絡(luò),發(fā)現(xiàn)國外可以使用google地圖來解決,而國內(nèi)只有使用百度的定位SDK來解決了,不過最新的安卓百度定位SDK4.1同樣巨坑無比,直接下載官方的demo跑在真機(jī)上各種無法定位,一直報(bào)errorcode 602,于是逛了下百度SDK的論壇,發(fā)現(xiàn)很多人說4.1版本的SDK問題很多,不如用回4.0版本,于是我報(bào)著試試看的心情用回了SDK4.0版本,最終在安卓4.1的機(jī)器上定位成功,不存在需要重啟的情況,然后我根據(jù) andybuit 作者的代碼,小幅改動(dòng),封裝成支持新版 cordova 3.4.1 的插件放在github上,供碰到同樣問題的朋友使用,希望能夠幫助到他們。再次感謝 andybuit 提供的百度定位代碼,謝謝!

新版本插件地址:

下面步入正題,通過一個(gè)簡單的安卓 hello world 程序來運(yùn)用百度定位插件
1、建立 hello world 項(xiàng)目:

cordova create hello com.example.hello HelloWorld

2、建立安卓支持,目前本插件只支持安卓,似乎也只要支持安卓,ios對(duì)html5的定位支持的非常好,無須百度定位SDK

cordova platform add android

3、安裝 baidu 定位的插件:
可以通過git來下載遠(yuǎn)程的,需要安裝git命令
 cordova plugin add https://github.com/DoubleSpout/phonegap_baidu_sdk_location.git
也可以將插件下載到 hello\plugins 目錄下,文件夾重命名為 com.spout.phonegap.plugins.baidulocation,然后執(zhí)行命令:

cordova plugin install com.spout.phonegap.plugins.baidulocation

4、插件安裝完成之后,執(zhí)行一次 build 命令,將插件的配置文件寫入安卓平臺(tái)目錄:

cordova build android

5、打開eclipse,對(duì)hello項(xiàng)目進(jìn)行配置:

5.1、新建工程
 
5.2、從已有代碼庫添加
 
5.3、找到安卓的項(xiàng)目路徑
 
5.4、編輯項(xiàng)目屬性
 
5.5、添加百度sdk的jar文件
 
5.6、選擇locSDK
 
5.7、編輯source 附件
 
5.8、同樣選擇百度sdk的jar
 
5.9、保存路徑
 
5.10、選擇order and export 將前面全部打勾
 
5.11、將文本編輯編碼改為utf-8
 
5.12、打開 hello\platforms\android\src\com\spout\phonegap\plugins\baidulocation\BaiduLocation.java 文件,修改自己的apkkey(其實(shí)不修改也能使用),大約在64行:

key的生成和獲取詳見百度sdk的key獲取頁面,地址:

6、找到 hello\www\js\index.js 文件,修改并增加如下幾行,通過百度SDK獲取經(jīng)緯度:

onDeviceReady: function() {
app.receivedEvent('deviceready');

//通過百度sdk來獲取經(jīng)緯度,并且alert出經(jīng)緯度信息
var noop = function(){}
window.locationService.getCurrentPosition(function(pos){
alert(JSON.stringify(pos))
window.locationService.stop(noop,noop)
},function(e){
alert(JSON.stringify(e))
window.locationService.stop(noop,noop)
});
},



7、完成上述工作后,執(zhí)行命令打包生產(chǎn)APK,注意百度定位的SDK在模擬器上是無法運(yùn)行的,會(huì)曝出167錯(cuò)誤碼

cordova build android


8、將 hello\platforms\android\ant-build\HelloWorld-debug-unaligned.apk 文件拷貝到之前有問題的安卓4.1的機(jī)器上,顯示如下圖,通過wifi成功快速獲取到經(jīng)緯度信息,再也不用重啟機(jī)子了:
 
至此百度SDK說明完畢,希望能夠幫助到利用phonegap開發(fā)安卓應(yīng)用,又碰到我這樣問題的朋友~
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
PhoneGap的百度定位API插件
用Phonegap開發(fā)一個(gè)豆瓣電臺(tái)(一)
使用 PhoneGap和百度地圖服務(wù)快速開發(fā)移動(dòng)地圖應(yīng)用
跨平臺(tái)移動(dòng)開發(fā)phonegap/cordova 3.3全系列教程
phonegap安裝 環(huán)境搭建與配置詳解(3.4 完整版 提供下載地址)
Linux 下使用命令行開發(fā) Android 應(yīng)用程序
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服