Android - простая пользовательская форма ввода веб-просмотра в серверную часть Java с помощью jQuery Mobile - PullRequest
5 голосов
/ 22 января 2012

Я сейчас разрабатываю приложение для Android.Я планирую использовать веб-представление jQuery Mobile в качестве моего интерфейса и выполнять все вычисления с помощью Java-интерфейса.(все еще решаю, использовать телефонную пробку или нет)

У меня есть некоторые трудности с реализацией страницы, которая позволяет пользователю заполнить форму и передать переменную в Java-часть Android.

Исследуя все утро, я научился взаимодействовать между javascript / html и java с помощью addJavascriptInterface ().Но единственное, что я могу найти в ответе на мой вопрос - это JSON.Это кажется немного сложным.Есть ли способ передать переменную в качестве параметра функции Java?

(я узнал, что если я не использую веб-представление, я могу просто использовать getText () или getSelectedItem () с пользовательским интерфейсом по умолчанию)чтобы делать то, что я хочу)

Я прошу прощения, что нет доступного кода, так как он все еще находится в стадии разработки, и я немного новичок в Android SDK.

Спасибо

1 Ответ

8 голосов
/ 22 января 2012

ОК, вот пример взаимодействия с интерфейсом javascript ...

Настройка интерфейса javascript в вашей активности ...

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

Внутренний класс JavascriptInterface в вашей активности Android...

public class JavascriptInterface {
    Context mContext;

    JavascriptInterface(Context c) {
        mContext = c;
    }

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

РЕДАКТИРОВАТЬ: Ваша форма будет иметь различные поля ввода.Пример ...

<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>
...