我們正在開發一個應用程序,其中包含Phonegap 2.5.0(因爲Phonegap Build中沒有新版本),並且遇到麻煩。通過Phonegap構建Phonegap應用程序構建iOS上出現錯誤的通知
該應用程序是一個簡單的測試應用程序,我們用它來比較jQuery Mobile和Sencha Touch。因此,我們創建了一個index.html文件,該文件包含指向jquery.html和sencha.html的鏈接,並使用不同的UI實現相同的應用程序,但調用相同的phonegap觸發器。
我們有兩個創建配置:
- 的應用程序通過Eclipse的本地製造
- 的應用程序通過Phonegap Build
我們使用相同的Web內容,我們本地構建Android應用程序在線建。我們只刪除<script>
元素,該元素爲2.5.0加載cordova.js,並將內容與我們在本地構建的Android應用中使用的相同config.xml一起打包。 本地構建的Android應用程序工作得很好。只有當通過Phonegap Build在iOS上爲應用程序構建應用程序時纔會出現問題。正如預期的那樣,Android應用程序構建在線作品。只有iOS會造成麻煩。
在iOS上會發生什麼:
- 的index.html加載
- 我們可以單擊切換到jquery.html或sencha.html的鏈接。
- 切換與某些對話框通過以下消息旋轉應用警報後:
gap:["Device","getDeviceInfo","Device455526479"]
gap:["NetworkStatus","getConnectionInfo","NetworkStatus8103758"]
gap:["App","show","App8103759"]
- 那麼我們就可以訪問應用程序,甚至能夠獲得當前的GPS位置。
任何想法?非常感謝!
我們的config.xml:
<?xml version="1.0" encoding="utf-8"?>
<cordova>
<access origin="http://127.0.0.1*"/>; <!-- allow local pages -->
<access origin=".*"/>
<content src="index.html" />
<log level="DEBUG"/>
<preference name="useBrowserHistory" value="true" />
<preference name="exit-on-suspend" value="false" />
<plugins>
<plugin name="App" value="org.apache.cordova.App"/>
<plugin name="Geolocation" value="org.apache.cordova.GeoBroker"/>
<plugin name="Device" value="org.apache.cordova.Device"/>
<plugin name="Accelerometer" value="org.apache.cordova.AccelListener"/>
<plugin name="Compass" value="org.apache.cordova.CompassListener"/>
<plugin name="Media" value="org.apache.cordova.AudioHandler"/>
<plugin name="Camera" value="org.apache.cordova.CameraLauncher"/>
<plugin name="Contacts" value="org.apache.cordova.ContactManager"/>
<plugin name="File" value="org.apache.cordova.FileUtils"/>
<plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/>
<plugin name="Notification" value="org.apache.cordova.Notification"/>
<plugin name="Storage" value="org.apache.cordova.Storage"/>
<plugin name="FileTransfer" value="org.apache.cordova.FileTransfer"/>
<plugin name="Capture" value="org.apache.cordova.Capture"/>
<plugin name="Battery" value="org.apache.cordova.BatteryListener"/>
<plugin name="SplashScreen" value="org.apache.cordova.SplashScreen"/>
<plugin name="Echo" value="org.apache.cordova.Echo"/>
<plugin name="Globalization" value="org.apache.cordova.Globalization"/>
<plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser"/>
</plugins>
</cordova>
這對我們不起作用,因爲我們不能在我們的項目中包含任何JS文件!您的修補程序適用於本地構建的應用程序我們正在通過[Phonegap Build](https://build.phonegap.com/)在線構建。 根據[Adobe](https://build.phonegap.com/docs/preparing-your-app#configure_application),我們必須刪除通過[Phonegap Build]構建的phongegap/cordova JS文件(https:// build .phonegap.com /)。它將包含正確的平臺。所以在我們的項目中沒有錯誤的定位JS文件。問題依然存在。 –
這是我的答案。我首先開發了一個android應用程序。在Windows Phone上啓動時,我忘記更改cordova.js文件。 – Berty
花費幾乎找到一個修復程序,但這對我來說是解決方案。我沒有想到,一個JavaScript文件可以在兩個平臺上有所不同 –