2012-02-20 26 views
0

我有一個由我的同事使用的現有Web應用程序。此Web應用程序使用純HTML,CSS和JavaScript。我只通過後端與Web服務進行通信。我想在可能的情況下利用本地功能。我偶然發現了PhoneGap。從我所知道的基本上來說,有一個名爲phonegap- [version] .js的JavaScript文件。據我瞭解,這個文件基本上是一個包裝API。然後,您可以使用入門信息(http://phonegap.com/start#wp)將代碼推送到各個市場。PhoneGap的解釋

我的問題是關於phonegap- [version] .js文件。目前,我的應用程序在移動網絡上運行良好。有沒有辦法檢測phonegap是否是一種選擇?或者檢測我的代碼是否在本機運行?例如,我想將設備信息傳遞迴服務。爲此,我決定使用: http://docs.phonegap.com/en/1.4.1/phonegap_device_device.md.html#device.platform。我的印象是,如果應用程序在瀏覽器中運行,phonegap會自動使用navigator.useragent。但是,如果它在本地設備上運行,它將使用編譯後的呈現並傳遞更多特定的信息。

我有道理嗎?我有誤解嗎?我想我的印象是,我會使用phonegap- [version] .js,如果它作爲本地應用運行,它將使用設備功能。否則,會有掛鉤優雅失敗。有人可以引導我直嗎?

回答

0

它不止這個Phone差距是一個Objective-C庫,用於通過XCode將html5文件部署到蘋果應用商店。所有文件都應該作爲html文件存在於設備上,並對Web服務進行ajax調用,然後將這些數據解析爲html5視圖。手機間隙還允許您通過它的Objective-C橋接器使用本地apis,例如Camera,FileSystem,CoreGraphics,CoreData等。

總之,您不會在手機網站上使用phonegap-version.js,如果您將一個html5應用程序打包爲一個Appstore的本機應用程序,並希望利用JavaScript中的設備原生apis,它會使用它嗎?

您不需要檢測它,因爲您需要部署兩個不同的代碼庫,一個用於移動網站,另一個用於在應用程序容器中運行。你可以一個變量添加到您的設備的分支,說

var runningOnDevice = true; 

的,一個是移動互聯網,說

var runningOnDevice = false; 

難道我說的嗎?

+0

是的。謝謝。 – user208662 2012-02-20 21:47:46