2011-07-29 7 views
0

Webアプリケーションに必須のメタタグを追加して、サファリ要素(アドレスバーなど)のないスプリングボードからiPhoneに起動できるようにしました。 しかし、私のログインページはJSを介して動作し、応答はJSONとして戻ってきます。iPhone Webアプリケーション:Window.locationが機能していないようです。

Safariでは、Webアプリケーションとして起動しないと、リダイレクトが正常に機能します(window.locationを使用)。 Webアプリケーションとして起動すると、リダイレクトが正しく機能していないようです。画面は更新されますが、同じページに表示されます。

これはウェブアプリケーションの制限ですか、(間違いなく)間違っているのですか?

これは、[OK]をAjaxのポストに

genericPost: function (f, ajaxLoad) { 
    if (ajaxLoad == undefined) 
     ajaxLoad = true; 
    var form = $(f); 
    var data = form.serialize(); 
    var action = form.attr("action"); 
    $.ajax({ 
     type: 'POST', 
     url: action, 
     data: data, 
     success: function (response) { 
      if (response.worked) { 
       //navigate to the next required page 
       //Notify.showMessage(response.message); 
       if (response.redirect) { 
        if (ajaxLoad) { 
         Notify.showMessage(response.message, "ok"); 
         var back = response.direction == "back"; 
         $.mobile.changePage(response.redirect, "slide", back, true); 
        } 
        else { 
         window.location = response.redirect; 
        } 
       } 
       else { 
        Notify.showMessage(response.message, "ok"); 
       } 

      } 
      else { 
       Notify.showMessage(response.message, "error"); 
      } 
     }, 
     dataType: "json", 
     error: function() { 
      Notify.showMessage("Could not submit your form at the time. Please try again. Please try again", "error"); 
     } 
    }); 
} 

おかげ

答えて

0

を応答するコードですので、window.locationのは赤いニシンでした。 問題は、iosがフルスクリーンを実行しているときに、IISが好きではない別のユーザーエージェント文字列を送信するように見えることでした。 したがって、IISはこのブラウザがクッキーまたはそのようなものをサポートしていないため、認証トークンが失敗していると判断しました。

これは、プロジェクトと.browserファイルにapp_devicesフォルダを追加することで修正されました。

関連する問題