【发布时间】:2015-01-22 08:16:33
【问题描述】:
我有两个班级,我想在 MainActivity 中获取“JSI.var”。首先,当我单击按钮时,我得到“”空值。所以,没有日志。其次,我得到了 document.getElementsByName('name')[4].src) 值。因此,下一个日志中有 document.getElementsByName('name')[4].src) 。我如何在@JavascriptInterface 方法中获得另一个类。
在 MainActivity 的 onCreate() 方法中
webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(new JSI(), "HTMLOUT");
bt1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
for(int i=0;i<5;i++){
webview.loadUrl("javascript:window.HTMLOUT.processHTML(document.getElementsByName('name')["+i+"].src);");
Log.i("CODE : ",JSI.var);
//or
String str = JSI.var;}
}});
JSI 类
import android.webkit.JavascriptInterface;
public class JSI
{
static String var="";
@JavascriptInterface
public static void processHTML(String html)
{
var=html;
}
}
【问题讨论】:
-
可能问题是Log.i在javascript之前执行,尝试在Log之前放一个延迟,或者Log in processHTML方法
-
如果我将 Log.i---> 放入 processHTML(String html) 方法。日志工作正常。但我想获得 'var' 并应用 Log.i(var);在 MainActivity
标签: java javascript android webview