从Android Activity返回String值到JS函数

时间:2014-03-20 11:20:32

标签: javascript android string

我正在尝试从android活动向JS函数返回一个字符串值。 JS函数首先调用android活动方法,然后该方法返回一个字符串值,但它不起作用...看看代码

<script type="text/javascript">
   function PicMethod(){

    var path = activity.getPic();
  alert(path); 
    }

    </script>

这是android活动方法

 public String getPic()
    {
 String temp="abcd";
return temp;
    }

1 个答案:

答案 0 :(得分:1)

根据您的使用情况,有不同的方法来实现这一点。困难在于你想在onload方法中做一些事情。

如果可以在加载页面后传入字符串,则可以使用

String jsString = "javascript:addData('" + theString + "');");
webView.loadUrl(jsString);

如果您确实需要在页面的onload方法上访问数据,则可以修改调用的url以包含查询数据(如果可能)。类似的东西:

String urlWithData = yourUrl + "?data=" + theString;
webView.loadUrl(urlWithData);

然后使用标准的javascript来解析window.location.search来获取数据。

最后,如果由于某种原因无法修改URL,可以使用回调对象让javascript获取值:

private class StringGetter {
   public String getString() {
       return "some string";
   }
}

然后在加载url之前使用此回调配置webView:

webView.addJavascriptInterface(new StringGetter(), "stringGetter");

并在您可以使用的页面的onload方法中:

var theString = stringGetter.getString();

希望这有帮助!

问候:@albin