2011-10-12 17 views
5

iPhoneのPhoneGapで実際の問題が発生しました。アプリは、私のアンドロイドデバイスでかなりスムーズに動作していますが、私のiPhoneでは何もありません。たとえば、次のような単純なコード:PhoneGapのイベントがiPhoneで動作しない

<!DOCTYPE HTML> 
<html> 
<head> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0;" /> 
    <meta charset="utf-8"> 
    <title>WayAcross Mobile Application</title> 
    <link rel="stylesheet" href="css/jquery.css" /> 
    <link rel="stylesheet" href="css/screen.css" /> 
    <link rel="stylesheet" href="css/login.css" />  
    <script type="text/javascript" charset="utf-8" src="jquery/jquery.js"></script> 
    <script type="text/javascript" charset="utf-8" src="jquery/jquery.mobile.js"></script> 
    <script type="text/javascript" charset="UTF-8" src="javascript/mainJavascript.js"></script> 
     <script type="text/javascript" charset="utf-8"> 

      // Call onDeviceReady when PhoneGap is loaded. 
      // 
      // At this point, the document has loaded but phonegap.js has not. 
      // When PhoneGap is loaded and talking with the native device, 
      // it will call the event `deviceready`. 
      // 
      function onLoad(){ 
       document.addEventListener("deviceready", onDeviceReady, false); 
      } 

      // PhoneGap is loaded and it is now safe to make calls PhoneGap methods 
      // 
      function onDeviceReady() { 
       // Now safe to use the PhoneGap API 
       alert('ready'); 
      } 

      </script> 
     <script type="text/javascript" charset="utf-8" src="javascript/phonegap.js"></script> 
</head> 
<body onload="onLoad()"> 

(これはiPhoneで動作しない、Androidで動作するコード例です)。

イベントの問題だと思いますが、わかりません。 PhoneGapのドキュメントのコード例でさえ動作しません。 私の環境は次のとおりです。

  1. マックOSX 10.7.1
  2. のXcode 4.1
  3. のPhoneGap 1.1
  4. jQueryのモバイル1.0RC それは私が表示されていることを唯一のものはこれです:http://cl.ly/0h462Y2D2F0J0B1B0q1M

ありがとうございました。
よろしく、
Elkas


ところで、私は今、OSXライオン10.7.2とXcode 4.2をインストールしました。 IOS5でもそれは動作しません。これは私を夢中にさせている!!! この単純なコードでさえ、動作しません。ここでは野生の推測の

<!DOCTYPE html> 
<html> 
<head> 
    <title>PhoneGap Device Ready Example</title> 

    <script type="text/javascript" charset="utf-8"> 

     // Call onDeviceReady when PhoneGap is loaded. 
     // 
     // At this point, the document has loaded but phonegap.js has not. 
     // When PhoneGap is loaded and talking with the native device, 
     // it will call the event `deviceready`. 
     // 
     document.addEventListener("deviceready", onDeviceReady, false); 

     // PhoneGap is loaded and it is now safe to make calls PhoneGap methods 
     // 
     function onDeviceReady() { 
      alert('Hello World'); 
     } 

     </script> 
    <script type="text/javascript" charset="utf-8" src="javascript/phonegap.js"</script> 
</head> 
    <body> 
    </body> 
</html> 
+0

すべてがうまく見えますが、アラート()を使用して不具合がどこにあるかを調べてください。 – sciritai

+0

また、それを試してください。 bodyタグや他の関数にonload = "onDeviceReady()"を設定した場合、警告は表示されますが、phonegapの "events"はまだ動作しません。 =( – Elkas

+0

jQueryモバイルは*カスタムスクリプトの後に追加する必要があります – Walf

答えて

1

問題解決済み!

私はphonegap.jsなしでアプリケーションを実行し、新しいアプリケーションを作成しました。私はちょうど私がロードしていたものにその名前を変更し、アプリケーションは最終的に動作します。

+0

これは素晴らしい場所で、同じ問題があり、何が起こっていたのかうまくいかない。 phonegap.jsがプラットフォームごとに生成されることは明らかではありません。あなたの問題が簡単になるように質問を整理する必要があります。 – zode64

+0

実際に電話帳ダウンロードのターゲットプラットフォームのディレクトリを見ているのは明らかです。プラットフォーム固有の 'phonegap.js'(あるいはもっと最近' cordova.js')をあなたの 'assets/www /'ディレクトリに置き、最初にインクルードする方が良いでしょう。 – Walf

0

ソート、/あなたはアプリにこの事をコンパイルしていますが、フォルダのjqueryの/とJavaScriptでスクリプトファイルに....ので、マークアップポイントをXCodeのをリスト表示方法がわかりません。 XCodeを使用してアプリケーションをコンパイルすると、通常使用するグループフォルダを表す実際のフォルダにファイルが置かれません。ファイルが実際にアプリケーション内のディレクトリに入るようにするには、ハードドライブ上のフォルダをフォルダ参照として追加する必要があります(黄色ではなく青色のフォルダとして表示されます)。

これが問題かどうかを確認する最も簡単な方法は、スクリプトのフォルダパスを削除してファイルの名前にすることです。

+0

私はmate =を知っています)私はそれをしました。コピーと参照フォルダ。ここに画面があります。 http://cl.ly/2C243v0U2a0V062f2B0y – Elkas

1

このように、addeventリスナーをdocument.readyの下に置いてみてください。私と同じ問題が発生しました。

$(document).ready(function(){ 
document.addEventListener("deviceready",function(){ 

},false); 
}); 
+0

ok。私はそれを試してみましょう私はすぐに私はオフィスにいるように答えを与えるよ。返信いただきありがとうございます。 – Elkas

+0

まだ動作しません....くそー...これは私を狂っている! :P – Elkas

+0

大丈夫、待って、私のセットアップを見て、すぐにオフィスのトモで私に教えてください。 :) – ghostCoder

1

iOS用のPhonegapインストールを作成するときは、特定のバージョンの(ie)phonegap.1.4.1.jsが使用されます。

このファイルを新しいバージョン(cordova.1.8.0.jsなど)に置き換えると、アラートが機能しなくなりました。

新しいPhonegapバージョンにアップグレードする場合は、プロジェクトを「やり直す」必要があります。

私はphonegap.1.4.1.jsに戻り、魔法のようにイベントが再開しました。

0
function testDialog() { 
    document.addEventListener("deviceready", onDeviceReady, false); 
    function onDeviceReady() { 
     navigator.notification.alert("This is message", function(){}, "HaHa", "Done"); 
    } 
} 
+3

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 –

関連する問題