Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从javascript返回值设置android中的变量_Javascript_Android_Cordova_Return - Fatal编程技术网

如何从javascript返回值设置android中的变量

如何从javascript返回值设置android中的变量,javascript,android,cordova,return,Javascript,Android,Cordova,Return,我有返回值的JS function sendDisplay() { var dis = alert(reader.dom.find('controls_contents_container').style.display); return dis; } 在android中,我尝试设置返回值,以便在android中生成if-else语句 public class MainActivity extends DroidGap { @Override public void onC

我有返回值的JS

function sendDisplay()
{
 var dis = alert(reader.dom.find('controls_contents_container').style.display);
 return dis;
}
在android中,我尝试设置返回值,以便在android中生成if-else语句

public class MainActivity extends DroidGap {

   @Override
    public void onCreate(Bundle savedInstanceState) {
        CookieManager.setAcceptFileSchemeCookies(true);
        super.onCreate(savedInstanceState);
        super.setIntegerProperty("splashscreen", R.drawable.cover);
        super.loadUrl("file:///android_asset/www/index.html",1500);   

    }


    @Override
    public void onBackPressed() {
        super.loadUrl("javascript:alert(sendDisplay())"); 


    }


}
当我在loadUrl方法中发出警报时,它会显示来自JS的值。但我不知道如何将该值设置为android变量


TQ

看看谷歌的指南部分。我还将在这里发布一个简短的摘要:

首先需要设置一个Java类:

public class JavaScriptInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    JavaScriptInterface(Context c) {
        mContext = c;
    }

    /** Show a toast from the web page */
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }
}
然后,需要将该类的实例作为javascript接口添加到WebView中:

WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
最后,您可以使用javascript中的“Android.showtoos(无论什么)”调用它,也可以从Java代码中调用该javascript:

loadUrl("javascript:Android.showToast(whatever)");

这在显示Toast消息时有点多余。但希望您能明白这一点。

要进行Java-To-JavaScript通信,我认为您需要在JavaScript中运行一个Android后端来捕获JavaScript发送的消息。这是