私のコードでAndroidアプリ用のPhoneGapプラグインを試しています。私のHTMLStrict4コードは次のとおりです。
コード:
<!DOCTYPE html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script>
<script type="text/javascript" charset="utf-8" src="system.js"></script>
<script type="text/javascript">
var uname;
function validate(){
//uname = document.forms[0].elements[0].value;
//var pass = document.forms[0].elements[1].value;
uname=document.getElementById("i1").value;
var pass=document.getElementById("i2").value;
alert("Uname: "+uname+"\r\nPass: "+pass);
if(!uname || uname === "" || !pass || pass === ""){
alert("User Credentials are incorrect");
}
else{
//Make a webservice call
post_data(uname,pass,postDataCB);
}
}
function postDataCB(retval){
alert("In postDataCB()\r\nuname: "+uname);
}
</script>
</head>
<body>
<form>
User name: <input type="text" id="i1" name="username" value="GEO02-OTPUAT" /><br />
Password: <input type="password" id="i2" name="pwd" value="aaa111" /><br />
<button onclick="javascript:validate()">Submit</button><br />
</form>
私のHTMLには、というグローバル変数がありuname
ます。この変数はコールバック関数postDataCB()
で使用されますが、未定義として提供されます。(私は警告して見ました)私が観察したのは<form />
、HTMLコードから要素を削除したときに機能しているようです。
だから、誰でもそれが起こっている理由とこの問題を解決する方法を教えてもらえますか?
post_dataのコード:
public PluginResult post_data(JSONArray funcargs, String jscallbackid){
SuccessCallBack=funcargs.getString(0);
FailureCallBack=funcargs.getString(1);
uname= funcargs.getString(2);
passw = funcargs.getString(3);
conn = new URL("http://www.subratlogin.com/login").openConnection();
conn.setDoOutput(true);
data += URLEncoder.encode(uname, "UTF-8") + "=" + URLEncoder.encode(passw, "UTF-8") + "&";
//remove the unwanted & at the end of the string
data = data.substring(0,data.length()-1);
ro = new OutputStreamWriter(conn.getOutputStream());
ro.write(data);
//Close the connection
ro.close();
try{
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = rd.readLine()) != null)
{
sb.append(line);
}
//Close the connection
rd.close();
} catch (IOException e) {
SendJS = "javascript:" + FailureCallBack + "('" + e.getMessage() + "')";
sendJavascript(SendJS);
return null;
}
SendJS = "javascript:" + SuccessCallBack + "('" + JSONObject.quote(sb.toString());
if(jObj != null)
SendJS += "','" + jObj + "')";
else if(StringParam != null)
SendJS += "','" + StringParam + "')";
else
SendJS += "')";
sendJavascript(SendJS);
return null;
}
このタイプの質問をすることをお勧めします。