2012-01-22 34 views
5

ile back-end java için basit kullanıcı giriş formu web-görünüm Şu anda bir yerli android uygulama tasarlıyorum. JQuery Mobile web görünümünü benim arayüzüm olarak kullanmayı ve java back-end ile tüm hesaplamaları yapmayı planlıyorum. (hala telefongap kullanıp kullanmayacağınıza karar verin)Android - jQuery Mobile

Kullanıcının bir formu doldurmasına ve değişkeni android java bölümüne geçirmesine izin veren bir sayfayı uygularken bazı zorluklar yaşıyorum.

Bütün sabahı araştırdığımda, javascript/html ve java ile addJavascriptInterface() arasında nasıl etkileşimde bulunacağımı öğrendim. Ama bu cevabı bulabildiğim tek şey sorumu JSON. Bu biraz karmaşık görünüyor. Değişkeni bir java fonksiyonunun parametresi olarak geçebilmemin bir yolu var mı?

(Ben bir web görünümü kullanmak istemiyorsanız, ben sadece ne istediğinizi yapmak için varsayılan UI ile gettext() veya getSelectedItem() kullanabilirsiniz öğrendim kadar)

hiçbir kod DAİREMİZ yoktur özür dileriz

, Bu hala tasarım aşamasında olduğundan ve ben android sdk için biraz yeni.

Teşekkür

+0

Javascript arabirimine hangi verileri aktarmanız gerekir? Formda kaç alan ve ne tür? Sınırlandırılmış bir dize oluşturabilir ve arayüzde bir işlevi çağırabilirsiniz. – Squonk

+0

, yaklaşık 5 kullanıcı ayarı alanı olacak gibi görünüyor. Bu, gönderme düğmesine tıklandığında, javascript işlevini bu giriş değerlerini değişkenlere kaydetmek ve bir java işlevini çağırmak anlamına gelir mi? – AbSoLution8

+0

Örnek yanıtıma bakın. Sadece bu şeylerle kendim oynamaya başladım ama bence birden fazla parametreyi "JavaScriptInterface" işlevine iletebilirsiniz. – Squonk

cevap

8

Tamam, buraya Faaliyetinizdeki javascript arayüzünü ayarlama

...

JavascriptInterface javasriptInterface = new JavascriptInterface(this); 
webview.addJavascriptInterface(javasriptInterface, "Android"); 

iç JavascriptInterface sınıf ... javascript arayüzü ile etkileşime ilişkin bir örnek senin Android Activity ...

public class JavascriptInterface { 
    Context mContext; 

    JavascriptInterface(Context c) { 
     mContext = c; 
    } 

    public boolean doSomething(String name, String address) { 
     ... 
     return true; 
    } 
} 

DÜZENLEME: Formunuzda çeşitli giriş alanları olacaktır. Örnek ...

<form name="myForm" ...> 
    <input type=text name=personName> 
    <input type=text name=personAddress> 
    <input type="button" value="Do it" onClick="callDoSomething()" /> 
</form> 

<script type="text/javascript"> 
    function callDoSomething() { 
     var theName = document.myForm.personName.value; 
     var theAddress = document.myForm.personAddress.value; 
     var result = Android.doSomething(theName, theAddress); 
    } 
</script> 
+1

teşekkürler. Bunu başka bir yerde görmüştüm ve bu kısmı anladım. Anladığım şey, giriş değerlerini Android.showTast'e nasıl iletmeliyim? (örn. form girdisi değerlerini "ileti" ye nasıl alabilirim? (teşekkürler – AbSoLution8

+0

Cevabımın sonunda düzenleme konusuna bakın ve ayrıca 'doSomething (...) işlevini' JavascriptInterface' sınıfına ekledim. Daha fazla, dediğim gibi, bu şeyleri yapmakta oldukça yeniyim ama umarım size bir başlangıç ​​verecektir. – Squonk