如何在这种情况下,通过数据从JavaScript到Android的WebView? [英] How to pass Data From Javascript To Android WebView in this case?

查看:84
本文介绍了如何在这种情况下,通过数据从JavaScript到Android的WebView?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    Main();

}
public void Main()
{
    _linearLayout = new LinearLayout(this);
    _webview = new WebView(this);
    _linearLayout.addView(_webview, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
    setContentView(_linearLayout);

    _webview.getSettings().setJavaScriptEnabled(true);
    _webview.getSettings().setPluginsEnabled(true);
    _webview.getSettings().setAllowFileAccess(true);

    _webview.setWebChromeClient(new WebChromeClient());
    _webview.addJavascriptInterface(this, "Question");
    _webview.loadData(GetHTML(), "text/html", "utf-8");


}

public String GetHTML()
{   
    String HTML = ""
        + "<HTML>"
        + "<HEAD>"
        + "<TITLE>Radio Button onClick Handler</TITLE>"
        + "<SCRIPT LANGUAGE=\"JavaScript\">"
        +"function function1(colors) {" 
        +"var col = (colors.options[colors.selectedIndex].value);"
        +" if (col) {"
        +"  document.bgColor = col;"

        +"   } "
        +"</script>"
        + "</HEAD>"
        + "<BODY>"
        +"<form>"
        +"<b> Hello </b>"
        //+"<select name=\"colors\" onChange=\"window.Question.function1(this);\">"
        +"<select name=\"colors\" onChange=\"window.Question.OnJsClick_SelectedItem(' string value');\">"
           +"<option value=\"white\" selected>White</option>"
           + "<option value=\"cyan\">Cyan</option>"
           + "<option value=\"ivory\">Ivory</option>"
           + "<option id=\"myO\" value=\"blue\">Blue</option>"

        +"</select>"
        +"</form>"
        + "</BODY>"
        + "</HTML>";

    return HTML;
}

public void OnJsClick_SelectedItem(final String str)
{
    mHandler.post(new Runnable()
    {
        //@Override
        public void run()
        {
            getValue(str);
        }
    });
}

public String getValue(String str)
{
    _webview.loadUrl("javascript:function1(colors)");
    Toast.makeText(this, "Under getValue " + str, Toast.LENGTH_SHORT).show();
    return str;

}
}

请帮我了。

推荐答案

您应该使用这样的:

<select name="colors"
    onChange="Question.OnJsClick_SelectedItem(this.options[this.selectedIndex].text)">

这篇关于如何在这种情况下,通过数据从JavaScript到Android的WebView?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆