1

Phonegap と jQuery Mobile を使用してアプリを作成しました。Android では問題なく動作していますが、現在 iOS で実行しようとしています。iOS 5.1、Phonegap 1.7、jQuery 1.7.1、jqQuery Mobile 1.1 で XCode 4.3.3 を使用します。アプリの最初の部分はログオンです。私の JavaScript はイベントを待ってdevicereadyから、PHP ページに投稿してログオン資格情報を確認します。

一連のアラートを配置しましたが、js は post メソッドまで正常に起動し、その時点で終了します。初めてホワイトリストの例外エラーが発生したため、Cordova.plist の ExternHosts にエントリを追加しました。投稿にヒットしても、エラーなどは発生しません。これが私のhtmlページです:

<!DOCTYPE HTML>
<html>
<head>
<title>Login</title>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="jquery/jquery.mobile.css" type="text/css" charset="utf-8" />
<script type="text/javascript" charset="utf-8" src="js/login1.js"></script>
</head>
<body onload="init()">
<div id="loginPage" data-role="page">
<div data-role="header" data-position="fixed" data-theme="b">
  <h1>Sign In</h1>
</div>
<div data-role="content">
  <form id="loginForm">
    <div data-role="fieldcontain" class="ui-hide-label">
      <label for="username">Username:</label>
      <input type="text" name="username" id="username" value="" placeholder="Username" />
    </div>
    <div data-role="fieldcontain" class="ui-hide-label">
      <label for="password">Password:</label>
      <input type="password" name="password" id="password" value="" placeholder="Password" />
    </div>
    <input type="submit" value="Login" id="submitButton">
  </form>
</div>
<div data-role="footer" data-id="foo1" data-position="fixed" data-theme="b">
  <h4>Stone Creek Portal</h4>
</div><!-- /footer -->
</div>

<script type="text/javascript" src="jquery/jquery-1.7.1.min.js"></script>
<script type="text/javascript" charset="utf-8" src="cordova-1.7.0.js"></script>
<script type="text/javascript" src="cordova-WebInspector.js"></script>
<script src="jquery/jquery.mobile-1.1.0.js"></script>
</html>

そして、これは私のJavascriptです:

function init() {
  document.addEventListener("deviceready", deviceReady, false);
  delete init;
}
function deviceReady() {
  $("#loginForm").on("submit",function(e) {
    $('#loginForm').attr('autocomplete', 'off');
    $("#submitButton",this).attr("disabled","disabled");
    var u = $("#username", this).val();
    var p = $("#password", this).val();
    if(u != '' && p!= '') {
      navigator.notification.alert("before the post");
      $.post("http://someurl.php", {username:u,password:p}, function(res) {
        if(res.result != 'false'){
          var userID = res.result;
          localStorage.setItem('userID',userID);
          $.mobile.changePage("projectList.html");
        } else {
          navigator.notification.alert("Your login failed", function() {});
        }
        $("#submitButton").removeAttr("disabled");
      },"json");
    }
    return false;
  });
}

何が私を止めているのか本当にわかりません。アドバイスをいただければ幸いです。ありがとう!

4

0 に答える 0