如何在 WebView 的 Java 代码中使用 JavaScript 的值?

huangapple go评论81阅读模式
英文:

how to use javascript value in java code in webview?

问题

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {

    webView.evaluateJavascript("alert('hi'); var elem = " +
        "document.querySelector('.price__container__discount__sales_price').firstChild.innerHTML;"
        ,null);

    btn.setText(elem);
}
英文:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {

        webView.evaluateJavascript("alert('hi'); var elem = 
        document.querySelector('.price__container__discount__sales_price').firstChild.innerHTML;" 
        ,null);

        btn.setText(elem);
}

i want use elem variable that declare in js into java code in setText methode

答案1

得分: 1

如果您想从加载到Web视图中的JavaScript代码中获取一个值,我建议使用@JavascriptInterface注解来公开一个方法,该方法可以从JavaScript中获取该值。

以下是如何做到这一点的示例:

原生代码

// 确保启用以下设置
webviewSettings.setJavaScriptEnabled(true);
addJavascriptInterface(YOUR_INTERFACE_CLASS, YOUR_INTERFACE_NAME);

@JavascriptInterface
public void getSalesPrice(String value) {
    // 在这里,您将从JavaScript中获取该值
}

JavaScript代码

function sendDataToNative(data) {
    YOUR_INTERFACE_NAME.getSalesPrice(data);
}

请注意,将这些示例中的YOUR_INTERFACE_CLASSYOUR_INTERFACE_NAME替换为您实际使用的接口类和接口名称。

英文:

If you want to get a value from your javascript code loaded into your webview, I would expose a method with the @JavascriptInterface annotation that would gather that value from your javascript.

An example of how to do that is below:

NATIVE

//Make sure to enable these settings
  webviewSettings.setJavaScriptEnabled(true);
  addJavascriptInterface(YOUR_INTERFACE_CLASS, YOUR_INTERFACE_NAME);

 @JavascriptInterface
    public void getSalesPrice(String value) {
        //Here you will get the value from your javascript
    }

JAVASCRIPT

function sendDataToNative(data) {
        YOUR_INTERFACE_NAME.getSalesPrice(data);
    }

huangapple
  • 本文由 发表于 2020年9月15日 14:59:50
  • 转载请务必保留本文链接:https://go.coder-hub.com/63896680.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定