5

Phonegap 2.5.0でアプリを開発しており( Phonegap Buildに新しいバージョンがないため)、問題が発生しています。

このアプリは、jQuery Mobile と Sencha Touch を比較するために使用する簡単なテスト アプリです。したがって、異なる UI で同じアプリを実装するが同じ phonegap トリガーを呼び出す jquery.html と sencha.html へのリンクを含む index.html ファイル ウィッチを作成しました。

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

  • アプリは Eclipse 経由でローカルにビルドされます
  • アプリはPhonegap Buildを介してオンラインで構築されています

ローカルでビルドした Android アプリと同じ Web コンテンツを使用します。2.5.0 のcordova.js<script>をロードし、ローカルにビルドされた Android アプリで使用するのと同じ config.xml と一緒にコンテンツをパックする要素のみを削除します。ローカルにビルドされた Android アプリは問題なく動作します。問題が発生するのは、アプリが Phonegap Build を介して iOS 用にオンラインでビルドされている場合のみです。オンラインでビルドされた Android アプリは、期待どおりに動作します。トラブルを起こすのはiOSだけ。

iOS での動作:

  • index.html が読み込まれます
  • jquery.html または sencha.html に切り替わるリンクをクリックできます。
  • 次のメッセージを循環するいくつかのダイアログでアプリのアラートを切り替えた後:
    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>
4

2 に答える 2

5

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

考えられるシナリオ:

iOS ビルドを作成するために、Android フォルダーから cordova-2.5.0.js ファイルをインクルードした可能性があります。www フォルダー内の JS ファイルのスペルが間違っている可能性があります。(可能性は低いですが)。

修理:

iOS ビルド用の Phonegap-2.5.0 フォルダー内の iOS フォルダーから Javascript (Cordova-2.5.0.js ファイル) ファイルを使用します。

于 2013-05-15T13:57:33.627 に答える
1

Phonegap Build は、最新バージョンの cordova 2.5.0 のみをサポートしていました。バージョン2.7.0も使えるようになりました。2.7.0 に切り替えた後、alert() は消えました。すべてが期待どおりに機能するようになりました。

問題が解決しました!

于 2013-06-13T07:35:09.463 に答える