Java 在 Android JavascriptInterface 中从另一个 class 获取变量
Java get variable from another class in Android JavascriptInterface
我有两个 class,我想在 MainActivity 中得到 'JSI.var'。首先,当我点击按钮时,我得到“”空值。所以,没有日志。其次我得到 document.getElementsByName('name')[4].src) 值。因此,在下一个日志中有 document.getElementsByName('name')[4].src)。我如何在@JavascriptInterface 方法中获得另一个 class。
在 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;}
}});
JSIclass
import android.webkit.JavascriptInterface;
public class JSI
{
static String var="";
@JavascriptInterface
public static void processHTML(String html)
{
var=html;
}
}
试试这个
static String var="";
public void onCreate() {
webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(this, "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);");
}
}
);
}
@JavascriptInterface
public static void processHTML(String html){
var=html;
Log.i("CODE : ",var);
}
这样,当执行 javascript 时,您的 activity 中就有了值。
我有两个 class,我想在 MainActivity 中得到 'JSI.var'。首先,当我点击按钮时,我得到“”空值。所以,没有日志。其次我得到 document.getElementsByName('name')[4].src) 值。因此,在下一个日志中有 document.getElementsByName('name')[4].src)。我如何在@JavascriptInterface 方法中获得另一个 class。
在 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;}
}});
JSIclass
import android.webkit.JavascriptInterface;
public class JSI
{
static String var="";
@JavascriptInterface
public static void processHTML(String html)
{
var=html;
}
}
试试这个
static String var="";
public void onCreate() {
webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(this, "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);");
}
}
);
}
@JavascriptInterface
public static void processHTML(String html){
var=html;
Log.i("CODE : ",var);
}
这样,当执行 javascript 时,您的 activity 中就有了值。