首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android webview:如何通过调用evaluateJavascript的方法来获取evaluateJavascript的结果?

Android webview:如何通过调用evaluateJavascript的方法来获取evaluateJavascript的结果?
EN

Stack Overflow用户
提问于 2020-01-17 00:32:06
回答 1查看 81关注 0票数 0

我们知道在Android中,如果我们想获得JavaScript代码调用返回的结果,我们可以使用webview.evaluateJavascript()。例如:

代码语言:javascript
复制
webview.evaluateJavascript("1+2", new ValueCallback<String>() {
     public void onReceiveValue(String value) {
        //value should be 3
     }
});

但是,如何在调用evaluateJavascript的方法中进一步获得结果呢?例如:

代码语言:javascript
复制
public void myFunc() {
   String s;
   webview.evaluateJavascript("1+2", new ValueCallback<String>() {
     public void onReceiveValue(String value) {
        s = value; //This line is only for illustration, it is not syntactically correct
     }
  });
  //Use s to do other things
}

当然,上面的代码片段不起作用,但是有可能实现类似的功能吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-01-17 01:04:27

我这样做:

代码语言:javascript
复制
            String js = "window.openDrawer();";

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                mWebView.evaluateJavascript(js, new ValueCallback<String>() {
                    @Override
                    public void onReceiveValue(String s) {
                        Log.i("MyApp", s);
                    }
                });
            }

我不知道写'1+2‘是不是足够的javascript来获得返回值。您可能需要在javascript中声明函数,然后让该函数返回1+2的结果。

类似于:

代码语言:javascript
复制
String js = "func SumIt(int a, int b) { return (a + b); }; SumIt(1, 2);"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59774052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档