2012-07-11 46 views
1

我嘗試了PhoneGap的插件Android應用在我的code.My HTML嚴格的4代碼如下的PhoneGap的PlugIn不工作

CODE:

<!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:&nbsp;&nbsp;<input type="password" id="i2" name="pwd" value="aaa111" /><br /> 
     <button onclick="javascript:validate()">Submit</button><br /> 
    </form> 

在我HTML,我有一個名爲uname的全局變量。該變量用於回調函數postDataCB(),但它未定義。 (我確實警覺並看到) 我觀察到的是當我從HTML代碼中刪除<form />元素時,它似乎工作。

因此,任何人都可以告訴我爲什麼會發生這種情況,以及如何解決這個問題。

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;  
} 

SRY FR問這樣的問題。

+1

Eclipse是一個IDE。這不是標記Eclipse的Eclipse問題。 難道你不應該標記'phonegap-plugins'嗎? – nimish 2012-07-11 08:00:01

+0

Holy cowwww !!!人們仍然使用phonegap 1.0.0:O – 2012-07-11 10:09:34

+0

我患有類似問題請通過我的線程 http://stackoverflow.com/questions/11451155/phonegap-plugin-behaving-in-a-strange-manner – nimish 2012-07-12 11:50:21

回答

-1

您完全沒有遵循插件規範,也沒有看到您爲設備準備安裝偵聽器的任何地方。

http://wiki.phonegap.com/w/page/36753494/How%20to%20Create%20a%20PhoneGap%20Plugin%20for%20Android

+0

請閱讀我上面的評論。從他的描述看來,他的Phonegap插件工作正常 – nimish 2012-07-11 17:52:42

+0

@nimish作爲核心PhoneGap Android提交者之一,我可以說,用戶是這樣做的錯誤方式。如果他們按照被禁止的方式編寫插件,他們會有更好的結果。 – 2012-07-11 20:22:37

+0

我也會試圖弄清楚希望我成功了:) – nimish 2012-07-12 03:31:39