私が作成したWebアプリケーションを指すUIWebViewを表示するiPhoneアプリケーションをビルドしています。UIWebViewでユーザーインタラクションがjQueryのajaxリクエストをねじ込むことがあります
Webアプリケーションは、キャンバス上のコントロールをアニメートするために使用されるデータ項目に対して頻繁なWebサービスコールを行います。データの呼び出しでは、jQuery ajaxを使用し、JSONを介してパラメータを渡してXMLレスポンスを受け取ります。
私はUIWebViewとのユーザーのやりとりが発生しているが、javascriptのsetTimeoutメソッドはブロックされており、まったく実行されていないようです。けっこうだ;これを回避する方法があります。
しかし、大きな問題は、ユーザーのやりとり(ズーム、パンニングなど)が行われるたびに、ajax Webサービスコールが常に失敗し、理由がわからないことです。繰り返しても、数分のうちにWebサービスに到達することはありません。 UIWebViewを完全にそのままにしておくと、Webサービスが稼動していて接続性がある限り、決して失敗しません。
誰もがなぜ、どのようにこれを修正/回避することができますか?
クイックアップデート:Safariモバイルデバッガによれば、エラー関数の 'response'オブジェクトは定義されていません。たとえば、URLを無効にすると動作しますが、これは[webView stringByEvaluatingJavascript:@ "lastError"]によってobjective-cから呼び出すことができますが、この 'uiwebviewに触れました'エラーの例外がスローされます。
$.ajax({
type: "POST",
url: "WebService.asmx/GetValues",
async: true,
data: "{'pageVersionIndex': " + PageVersionIndex + " , 'timeStreamIndex': '" + TimeStream + "'}",
contentType: "application/json; charset=utf-8",
dataType: "xml",
success: function (response) { UpdateControls(response); },
error: function (response, status, errorthrown) {
calling = false;
lastError = response.statusText; //Throws exception
connectionInterrupted = true;
DataRoutine = window.setTimeout(DataService, dataFrequency); }
});
を役に立てば幸いあなたが持っているタグの1つ(「ウェブアプリケーション」かもしれない)。 – Pointy
いい考えです。 –