1

多分私はそれを間違って扱っています。知らない。私が知っているのは、appMobiに付属しているXHR.jsと特に関係があるということだけです。私は2日前にそこにあったものの最新のビルドを持っています。私はMacbookProで開発しています。XDKを使用してローカルでテストし、Androidプラットフォームを使用してHTCEvo3Dを使用してローカルWifi/テストを介してどこでもテストしようとしています。私はiPhone4SとiPad2を使用しています。毎回同じ結果です。

コンソールのデバッグウィンドウにエラーは表示されません。私が見るのは「RemoteBridge」または「RemoteBridge2」という言葉だけです。私のスクリプトは全体的に単純です。単なるjQueryベースの$.ajax投稿とそれに伴う小さなhtml。URLは、公開フォーラムで表示したくないので投稿時に変更しますが、有効なURLであり、出力として有効なJSONオブジェクトをドロップします。だから私は入力が必要です、私のアプリはその場で更新される多くの動的データを必要とするので、私はここからどこに行くべきかわかりません。そして、伝えられるところでは、私がしなければならなかったのはxhr.jsを含めることだけで、私の標準のjQueryは機能するはずでした。

とにかくここに私のコードがあります。

index.html

<!DOCTYPE HTML>
<html>
   <head>
      <meta charset="utf-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1" />
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Untitled Document</title>
      <link rel="stylesheet" media="all" href="./src/global.css">
   </head>
   <body>
      <div id="header">
         <div id="logo"></div>
         <div id="coname">COMPANY</div>
      </div>
      <div id="content"></div>
      <div id="footer">
         <div id="advert"></div>
      </div>   
      <script type="text/javascript" charset="utf-8" src="./src/appmobi.js"></script>
      <script type="text/javascript" charset="utf-8" src="./src/xhr.js"></script>
      <script type="text/javascript" charset="utf-8" src="./src/jquery-1.7.2.min.js"></script>
      <script type="text/javascript" charset="utf-8" src="./src/global.js"></script>
   </body>
</html>

およびglobal.jsのコンテンツ

// This event handler is fired once the AppMobi libraries are ready
function onDeviceReady() {
    //use AppMobi viewport to handle device resolution differences if you want
    //AppMobi.display.useViewport(768,1024);

    //hide splash screen now that our app is ready to run
    AppMobi.device.hideSplashScreen();
}

//initial event handler to detect when appMobi is ready to roll
document.addEventListener("appMobi.device.ready",onDeviceReady,false);

$(document).ready(function()
{
/*
   var request = $.ajax({
      url: "http://this.url-has-been-changed.net/geo/suggest",
      type: "POST",
      data: {"entry" : "951"},
      dataType: "json"
   });
   request.done(function(data){$('#advert').append('done');});
   request.fail(function(data){$('#advert').append('fail');})
   request.error(function(data){$('#advert').append('error');})
   request.complete(function(data){$('#advert').append('complete');})
   request.success(function(data){$('#advert').append('success');})
   */



   $.ajax({
      type: 'POST',
      url: "http://this.url-has-been-changed.net/geo/suggest?entry=951",
      success: function(data){$('#advert').html('success');},
      error : function(data){$('#advert').html('failed');},
      complete : function(data){$('#advert').html('complete');},
      dataType: "json"
   });

});

含まれていることが判明した他のすべてのファイルは、apmpobiからのストックです

4

1 に答える 1

3

クリス、

これを理解するのに役立ついくつかのこと。

  1. からappMobi.jsとXHR.jsを参照していることを確認してください
    http:// localhost:58888 / _appMobi

JavaScript APIブリッジコマンド(http://www.appmobi.com/documentation/jsAPI.html)を利用するため。

  1. これらのJavaScriptAPIブリッジコマンドを使用する前に、「appMobi.device.ready」イベントが発生するまで待ちます。あなたの場合、XHR.jsライブラリは実際にXMLHttp呼び出しをネイティブのAppMobi.device.getRemoteData呼び出しに変換しています。

このindex.htmlを試してください

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<!--
<link rel="stylesheet" media="all" href="./src/global.css">
-->
</head>
<body style="background-color:white;">
<div id="header">
<div id="logo"></div>
<div id="coname">COMPANY</div>
</div>
<div id="content"></div>
<div id="footer">
<div id="advert"></div>
</div>   
<script type="text/javascript" charset="utf-8" src="http://localhost:58888/_appMobi/appmobi.js"></script>
<script type="text/javascript" charset="utf-8" src="http://localhost:58888/_appMobi/xhr.js"></script>
<script type="text/javascript" charset="utf-8" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"></script>
<script type="text/javascript" charset="utf-8" src="global.js"></script>
</body>
</html>

このglobal.jsと一緒に

// This event handler is fired once the AppMobi libraries are ready
function onDeviceReady() {
//use AppMobi viewport to handle device resolution differences if you want
//AppMobi.display.useViewport(768,1024);

//hide splash screen now that our app is ready to run
AppMobi.device.hideSplashScreen();

$.ajax({
type: 'POST',
url: "http://this.url-has-been-changed.net/geo/suggest?entry=951",
success: function(data){$('#advert').html('success');},
error : function(data){$('#advert').html('failed');},
complete : function(data){$('#advert').html('complete');},
dataType: "json"
});
}

//initial event handler to detect when appMobi is ready to roll
document.addEventListener("appMobi.device.ready",onDeviceReady,false);

XHR.jsおよびappMobi.jsライブラリは、ネイティブレベルの機能を必要とするJavaScript呼び出しを「リッスン」するために、ラッピングアプリケーション自体によって提供されます。たとえば、クロスドメインデータリクエストを作成できるようにするAppMobi.device.getRemoteDataコマンド。便宜上、XHR.jsライブラリはXmlHTTP呼び出しをAppMobi.device.getRemoteDataコマンドに変換します。

JavaScript APIの詳細については、次のドキュメントを確認してください。

http://www.appmobi.com/documentation

于 2012-05-21T18:55:09.227 に答える