2013-05-15 21 views
5

Phonegap 2.5.0Phonegap Buildに新しいバージョンがないため)、問題が発生しているため、アプリを開発中です。Phonegap Phonegapでアプリケーションをビルドする

このアプリはjQuery MobileとSencha Touchを比較するための単純なテストアプリです。このため、index.htmlファイルにはjquery.htmlへのリンクとsencha.htmlのUIを持つ同じアプリを実装していますが、同じphonegapトリガーを呼び出すことができます。

我々は2つのビルド構成があります。

  • のAppは、Eclipseを経由してローカルで構築されてい
  • のAppは、私たちは、ローカルに構築するAndroidアプリで同じWebコンテンツを使用Phonegap Build

を経由してオンライン構築されていますが。 cordova.jsを2.5.0に読み込み、ローカルで作成したAndroidアプリで使用するのと同じconfig.xmlとともにコンテンツをパックする<script>要素のみを削除します。 ローカルに構築されたAndroidアプリは正常に動作します。問題は、Phonegap Buildを介してiOS向けにアプリがオンラインで構築されている場合にのみ発生します。 Androidアプリは、期待どおりにオンラインで動作します。 iOSだけが問題になります。

  • index.htmlには、我々はjquery.htmlまたはsencha.htmlに切り替わりリンクをクリックすることができます
  • ロードされます。iOSの上で何が起こる

  • 、次のメッセージを介して回転し、いくつかのダイアログでのアプリのアラートを切り替えた後:
    1. gap:["Device","getDeviceInfo","Device455526479"]
    2. gap:["NetworkStatus","getConnectionInfo","NetworkStatus8103758"]
    3. 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> 

答えて

1

Phonegapビルドは、最新バージョンのcordova 2.5.0としてのみサポートされました。これでバージョン2.7.0も使用できるようになりました。 2.7.0に切り替えると、alert()は無効になりました。すべてが期待通りに機能します!

問題が解決しました。

5

はあなたがiOSのに固有のPhoneGapのJSファイルが含まれているよろしいです?通常、このエラーは、iOS開発用にcordova/phonegapファイル(Androidに所属している)を間違って含めると発生します。ダウンロードしたphonegap 2.5.0フォルダには、プラットフォームごとに異なるサブフォルダがあります。特定のプラットフォーム用の適切なJavascriptファイルを使用していることを確認する必要があります。

可能なシナリオ:

あなたはiOSの構築にするAndroidのフォルダからコルドバ-2.5.0.jsファイルが含まれている可能性があります。 あなたのwwwフォルダにJSファイルのスペルが間違っている可能性があります。 (可能性は低いですが)。

修正:

のJavascript(コルドバ-2.5.0.jsファイル)はiOS版のビルドのためのPhoneGap-2.5.0フォルダ内のiOSフォルダからファイルを使用してください。

+0

プロジェクトにJSファイルを含めてはいけないので、これはうまくいきません!あなたの修正は、ローカルに構築されたアプリケーション用です。私たちは[Phonegap Build](https://build.phonegap.com/)でオンラインでビルドしています。 [Adobe](https://build.phonegap.com/docs/preparing-your-app#configure_application)によると、[Phonegap Build](https:// build)を使ってビルドするphongegap/cordova JSファイルを削除する必要があります.phonegap.com /)。これは、正しいプラットフォーム用の正しいものを含みます。したがって、私たちのプロジェクトには間違った位置にJSファイルがありません。問題は残っている。 –

+1

これは私の答えでした。私はアンドロイド向けのアプリを最初に開発しました。 Windows phoneで起動すると、cordova.jsファイルを変更するのを忘れてしまった。 – Berty

+0

修正を見つけるためにほとんど使いましたが、これは私にとっては解決策でした。私は、2つのプラットフォームでJavascriptファイルが異なるとは思わなかった –

関連する問題