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 Но нет описания доступных типов.