从Android应用程序解析javascript返回的value-object

时间:2013-09-05 08:10:17

标签: javascript android webview

我正在从我的应用程序的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]的方法。

2 个答案:

答案 0 :(得分:1)

您应该能够简单地执行dimensions.topdimensions.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。您只能传递这些原语,字符串和数组。