是否有关于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
答案 0 :(得分:1)
您可以在Java端要求String args,也可以确保数字是JavaScript的实际数字(而不是数字的文本版本 - 请参阅about.com - JavaScript: Strings to Numbers)。
答案 1 :(得分:1)
唯一相关的官方文件在这里: http://developer.android.com/guide/webapps/webview.html 但没有关于可用类型的描述