如何在WebKit中调用带参数的JavaScript函数?

3

我正在尝试向Javascript函数传递两个参数。这段代码 webview.loadUrl("javascript: function_to_call();"); 在没有参数的情况下可以正常工作,但是我无法使用它来传递参数。

以下是Javascript函数:

function changeLocation(_lon , _lat){
    var zoom=16;
    var lonLat = new OpenLayers.LonLat( _lon , _lat ).transform(         
        new OpenLayers.Projection("EPSG:4326"), 
        map.getProjectionObject());

    map.setCenter (lonLat, zoom);
}

这是我从Java中调用它的方法:

webView.loadUrl("javascript:changeLocation( -0.1279688 ,51.5077286 );") ;

编辑:我找不到问题,于是改变了我的方法,现在每次需要时我都会注入整个JavaScript函数,并进行所需更改。这不是最佳解决方案,但它能运行。感谢大家的帮助。


@dirhem:这个loadUrl()(注意:大写U)是在Java中的WebView小部件上吗?还是其他什么东西? - CommonsWare
@CommonsWare 抱歉,我刚才打错字了,是 WebView 控件的 loadUrl 函数。 - dirhem
你能发布一下让你困扰的源代码吗?另外,有没有出现任何错误信息? - Jake
@ Jake,我已经发布了源代码,而且我没有收到任何错误消息。 - dirhem
1
你尝试过webView.loadUrl('javascript:changeLocation( "-0.1279688" ,"51.5077286" );')吗? - josh.trow
@josh.trow 我试过了,也不起作用。 - dirhem
2个回答

8
你所拥有的看起来很好。这里有一个示例项目,展示了几乎相同的语法:GeoWeb2

6
尝试将webView.loadUrl("javascript:changeLocation( -0.1279688 ,51.5077286 );") ;更改为webView.loadUrl("javascript:changeLocation( '-0.1279688' ,'51.5077286' )") ;,也许可以去掉;。我之前遇到了类似的问题,通过在参数周围添加''来解决。我的解决方案中没有分号,但它仍然有效,所以您可能需要将其删除。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接