WebView JavaScript Bridge Документация

Есть ли документация, касающаяся WebView JavaScript Bridge? Я ищу документацию, которая описывает возможности и поддерживаемые типы данных для методов, определенных в "JavascriptInterface".

Например, если я определю следующее:

public class JavaScriptInterface {

    public int incrementNumber(int num) {
       return num + 1;

}

Если я вызываю этот метод из JavaScript и запускаю его в эмуляторе, кажется, все работает нормально. Если я запускаю это на моем NexusOne, переданный в аргументе "num" всегда равен "0".

Если я изменю вышеизложенное на:

 public class JavaScriptInterface {

    public int incrementNumber(String num) {
       // Leaving out try/catch
       int tempNum = newRadius = Integer.parseInt(num);
       return tempNum + 1;

}

... кажется, все работает. Поэтому мне интересно, если аргументы метода JavaScriptInterface должны / могут быть только типа String?

Соответствующие ресурсы: http://developer.android.com/reference/android/webkit/WebView.html http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object, java.lang.String) http://code.google.com/apis/maps/articles/android_v3.html

2 ответа

Решение

Вы можете либо потребовать аргументы String на стороне Java, либо убедиться, что числа являются действительными числами (а не текстовыми версиями чисел - см. About.com - JavaScript: Strings to Numbers) на стороне JavaScript.

Единственный соответствующий официальный документ находится здесь: http://developer.android.com/guide/webapps/webview.html Но нет описания доступных типов.

Другие вопросы по тегам