我正在从我的应用程序的WebView调用JavaScript函数。 此函数返回(如果我从firebug中调用它),例如:
对象{top:350.171875,left:129.265625,w:311,h:115}
我想要的是从我的Android应用程序中获取top,left,w和h的值。 但是当我尝试通过WebChromeClient onJsAlert()方法获取值时的值 消息参数是[object Object]。有没有办法从[object Object]中提取top,left,w,h所需的值?我找不到解析[object Object]的方法。
答案 0 :(得分:1)
您应该能够简单地执行dimensions.top
或dimensions.left
等(假设对象存储在变量dimensions
中)
var dimensions = {top: 350.171875, left: 129.265625, w: 311, h: 115}; //Would actually be a call to your function to calculate these dimensions
alert(dimensions.top);
答案 1 :(得分:1)
通常,您可以使用JavascriptInterface(请参阅http://developer.android.com/guide/webapps/webview.html)。
这可以是你的回调界面:
public class MyInterface {
@JavascriptInterface
public void myCallback(int top, int left, int w, int h) {
// This is where you receive the values
}
}
这是绑定它的方式:
myWebView.addJavascriptInterface(new MyInterface(), "Android");
myWebView.loadUrl("javascript:someJsFunction()");
这就是你javascript发送值的方式:
function someJsFunction() {
Android.myCallback(dimensions.top, dimensions.left, dimensions.w, dimensions.h);
}
您无法将实际对象从javascript传递给android。您只能传递这些原语,字符串和数组。