简体   繁体   English

Java从Android JavascriptInterface中的另一个类获取变量

[英]Java get variable from another class in Android JavascriptInterface

I have two class and I want to get 'JSI.var' in MainActivity. 我有两个课程,我想在MainActivity中获取“ JSI.var”。 Firstly i getting "" empty value when i button clicked. 首先,当我单击按钮时,我得到“”空值。 So, no log. 因此,没有日志。 Secondly i getting document.getElementsByName('name')[4].src) value. 其次,我得到document.getElementsByName('name')[4] .src)值。 So, there are document.getElementsByName('name')[4].src) in next logs. 因此,下一个日志中有document.getElementsByName('name')[4] .src)。 How i get another class in @JavascriptInterface method. 我如何在@JavascriptInterface方法中获取另一个类。

in onCreate() method in MainActivity 在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 class JSI类

import android.webkit.JavascriptInterface;

public class JSI
{
    static String var="";

 @JavascriptInterface
 public static void processHTML(String html)
{    
    var=html;
 }
 }

Try this 尝试这个

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);
 }     

This way you have the value in your activity when the javascript is executed. 这样,当执行javascript时,您就可以在活动中获得价值。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM