在android中调用js代码,js中又回调java 代码

来源:互联网 发布:台式机网络接口灯不亮 编辑:程序博客网 时间:2024/05/19 16:23

需求:

监听H5界面中的按钮的点击事件,当用户点击了按钮,android需要去获取H5中某些输入框的信息


网址:

https://cai-app-h5.huaxiafinance.com:58443/huaxia-crm-h5/authentication/authenticationIndex


上代码:

package cn.mifengkong.javaandjs;import android.content.Context;import android.graphics.Bitmap;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.webkit.JavascriptInterface;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;public class MainActivity extends AppCompatActivity {    private WebView mWebView;    private String url = "https://cai-app-h5.huaxiafinance.com:58443/huaxia-crm-h5/authentication/authenticationIndex";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mWebView = (WebView) findViewById(R.id.webview);        WebSettings settings = mWebView.getSettings();        //设置WebView属性,能够执行Javascript脚本        settings.setJavaScriptEnabled(true);        mWebView.addJavascriptInterface(new DataJavascriptInterface(this), "onclicklistener");        mWebView.setWebViewClient(new WebViewClient() {            public boolean shouldOverrideUrlLoading(WebView view, String url) {                return true;            }            @Override            public void onPageStarted(WebView view, String url, Bitmap favicon) {                super.onPageStarted(view, url, favicon);            }            @Override            public void onPageFinished(WebView view, String url) {                super.onPageFinished(view, url);                addImageClickListner();            }        });        mWebView.loadUrl(url);    }    private void addImageClickListner() {        //此处的代码是加载js,监听按钮的点击事件,然后获取某些输入框中的内容        mWebView.loadUrl("javascript:(function(){" +                "var objs = document.getElementById('authentication'); " +                "objs.ontouchend = function()" +                "    { " +                "var mobileNo = document.getElementById('userMobileNo').value; " +                "var bankCardNo = document.getElementById('bankCardNo').value; " +                "var iDCard = document.getElementById('iDCard').value; " +                "var userName = document.getElementById('userName').value; " +                "var bankcardName = document.getElementById('bankcardName').options[document.getElementById('bankcardName').selectedIndex].text;" +                "           window.onclicklistener.savedata(mobileNo,bankCardNo,iDCard,userName,bankcardName);" +                "    }" +                "})()");    }    // js通信接口    public class DataJavascriptInterface {        private Context context;        public DataJavascriptInterface(Context context) {            this.context = context;        }        @JavascriptInterface        public void savedata(String mobileNo, String bankCardNo, String iDCard, String userName, String bankcardName) {            Log.e("jiang", mobileNo + "--" + bankCardNo + "--" + iDCard + "--" + userName + "--" + bankcardName);        }    }}

源码下载

0 0
原创粉丝点击