英文:
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_CLASS
和YOUR_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);
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论