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;
});
}
何が私を止めているのか本当にわかりません。アドバイスをいただければ幸いです。ありがとう!