Документация 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


person tamsler    schedule 07.02.2011    source источник


Ответы (2)


Вы можете либо потребовать строковые аргументы на стороне Java, либо убедиться, что числа являются фактическими числами (а не текстовыми версиями чисел — см. about.com — JavaScript: от строк к числам) на стороне JavaScript.

person typo.pl    schedule 07.02.2011
comment
Спасибо за информацию. Но есть ли документ, в котором описаны поддерживаемые типы данных, которые можно передавать в методы JavaScriptInterface, а также поддерживаемые типы возвращаемых данных. - person tamsler; 08.02.2011
comment
Никогда не видел такой документации. Базовые типы данных — это то, что я видел в работе — числа и строки. - person typo.pl; 08.02.2011

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

person standup75    schedule 12.05.2011