2013-09-29 64 views
2

我試圖從下面的鏈接中找到地理位置示例。來自Phonegap的地理位置示例提供了Android上的錯誤警報

http://docs.phonegap.com/en/1.7.0/cordova_geolocation_geolocation.md.html#Geolocation

我複製從所述第一「完全實施例」的全部內容,並保存該文件作爲一個HTML。當我在Chrome(桌面)和Android手機內置瀏覽器(默認)中打開它時,我在Chrome和Android手機上都收到以下三條警報。

  1. 間隙:[ 「設備」, 「getDeviceInfo」, 「XXXXXXXXXX」]
  2. 間隙:[ 「NetworkStatus」, 「getConnectionInfo」, 「XXXXXXXXXX」]
  3. 間隙:[ 「應用」,」顯示「,」XXXXXXXXXX「]

我第一次點擊'取消',甚至嘗試'確定'但沒有任何反應。如果我在Android手機上的所有三個提醒中單擊「確定」,該頁面將全部變白。

所以我用Google搜索了一下,發現夫婦堆棧溢出的答案提示的:

  • 要刪除科爾多瓦JS文件的桌面瀏覽器
  • 從科爾多瓦添加Android的具體JS。

所以我嘗試了兩個但都沒有工作。最近,我嘗試了以下解決方案。

我下載了Cordova package (3.0.0),那裏有一個cordova-android.zip它有以下路徑cordova.js文件。

/cordova-android/framework/assets/www/cordova.js 

所以,現在我的腳本元素看起來是這樣的:

<script type="text/javascript" charset="utf-8" src="/cordova-android/framework/assets/www/cordova.js"> 

修改後的<script>元素上面,我沒有在Chrome中得到警示,但我仍然得到以下的新警報我Android手機。

  1. 間隙:[ 「插件管理」, 「啓動」, 「插件ManagerXXXXXXXXXX」]
  2. 間隙:[ 「應用」, 「顯示」, 「XXXXXXXXXX」]
  3. 碼:1,消息:用戶否認地理位置。

所以,現在我有以下問題:

  1. 我該如何解決這個問題(運行不警告的HTML網頁上的所有設備/瀏覽器)?
  2. 有關爲什麼在更改cordova.js文件後警報發生更改?

問候, Rumit

+0

你是說你只有一個HTML文件和cordova.js文件,並且你正試圖在PC上和Android手機上的瀏覽器中運行它? – DaveAlden

+0

是的,它只是一個HTML和cordova.js。在Chrome瀏覽器和Android手機上運行。 –

回答

3

你的問題是,你正在使用cordova.js,就好像它是一個JS庫如jQuery,但PhoneGap的(科爾多瓦)是一個混合的框架不是一個移動瀏覽器框架(see here for clarification )。它不打算用作網頁中的獨立JS庫,而是與本地Phonegap庫一起使用以構建本機應用程序。如果您將頁面創建爲Phonegap應用並將其構建爲Android,則您可以(並且需要)允許應用使用地理位置的權限。

Phonegap應用程序是通過原生WebView實現的,在Geolocation API的情況下,如果設備還沒有原生W3C實現(Android會),Phonegap將只使用自己的實現。

所以問題是:或者根據platform guide創建適當的Phonegap應用程序,或根本不使用Phonegap JS,因爲您可以直接從Javascript調用Android瀏覽器的地理位置API(navigator.geolocation)你的網頁 - 你不需要Phonegap的JS文件來讓你做到這一點(看看this question的答案)。

相關問題