书海拾贝专栏

多学多积累

webview_android 与js调用

1.Webview的使用

•WebView(网络视图)能加载显示网页

•String pathUrl = "https://www.youxuanbao.cn";

•webview = (WebView) findViewById(R.id.webview);

•webview.loadUrl(pathUrl);

2.Webview与js的交互

•在交互之前需要设置的参数

•WebSettings webSettings = mWebView.getSettings();

•webSettings.setJavaScriptEnabled(true);//Android容许执行js脚本需要设置

•//Android(Java)与js(HTML)交互的接口函数 jsObj 为桥连对象

•mWebView.addJavascriptInterface(getHtmlObject(), "jsObj");

•mWebView.loadUrl("file:///android_asset/index.html");

3.Android与JavaScript交互的四种情况

1)HTML中js调用Android(Java)代码

2)HTML中js调用Android(Java)代码(带参数)

3)Android(Java)调用HTML中js代码

4)HTML中js调用Android(Java)代码(带参数)

4.说明

•Android访问url网址,需在AndroidManifest.xml文件,配置容许访问网络的权限:
<uses-permission android:name="android.permission.INTERNET" />

•Android(Java)调用js(HTML)时,使用的mWebView.loadUrl("javascript: showFromHtml()");函数需在UI线程运行,因为mWebView为

网络的权限:
<uses-permission android:name="android.permission.INTERNET" />

•Android(Java)调用js(HTML)时,使用的mWebView.loadUrl("javascript: showFromHtml()");函数需在UI线程运行,因为mWebView为UI

网络的权限:
<uses-permission android:name="android.permission.INTERNET" />

•Android(Java)调用js(HTML)时,使用的mWebView.loadUrl("javascript: showFromHtml()");函数需在UI线程运行,因为mWebView为UI控件

 

下面示例总结这四种情况,直接上干货:

 

1) Android(Java)

    private Object getHtmlObject(){
        Object insertObj = new Object(){

            //HTML中js调用Android(Java)代码
            public String HtmlcallJava(){
                return "Html call Java";
            }
            // HTML中js调用Android(Java)代码(带参数)
            public String HtmlcallJava2(final String param){
                return "Html call Java : " + param;
            }
            //Android(Java)访问js(HTML)代码
            @SuppressWarnings("unused")
            public void JavacallHtml(){
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        //Android(Java)访问js(HTML)端代码是通过loadUrl函数实现
                        mWebView.loadUrl("javascript: showFromHtml()");
                        Toast.makeText(JSAndroidActivity.this, "clickBtn", Toast.LENGTH_SHORT).show();
                    }
                });
            }
            //Android(Java)调用HTML中js代码(带参数)
            public void JavacallHtml2(){
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mWebView.loadUrl("javascript: showFromHtml2('IT-homer blog')");
                        Toast.makeText(JSAndroidActivity.this, "clickBtn2", Toast.LENGTH_SHORT).show();
                    }
                });
            }
        };

        return insertObj;
    }

 

2) js(HTML)

<meta charset="utf-8">
<title>jsandroid_test</title>
<script type="text/javascript" language="javascript"> 
    
    function showHtmlcallJava(){
        var str = window.jsObj.HtmlcallJava();
        alert(str);
    }
    
    function showHtmlcallJava2(){
        var str = window.jsObj.HtmlcallJava2("IT-homer blog");
        alert(str);
    }
    function showFromHtml(){
        document.getElementById("id_input").value = "Java call Html";
    }
    
    function showFromHtml2(param){
        document.getElementById("id_input2").value = "Java call Html : " + param; 
    }
</script>


</head>


<body>

webview– js与android之间的交互
<br>
<br>
<input type="button" value="HtmlcallJava" onclick="showHtmlcallJava()" />
<br>
<br>
<input type="button" value="HtmlcallJava2" onclick="showHtmlcallJava2()" />
<br>
<br>
<input id="id_input" style="width: 90%" type="text" value="null" />
<br>
<br>
<input type="button" value="JavacallHtml" onclick="window.jsObj.JavacallHtml()" />
<br>
<br>
<input id="id_input2" style="width: 90%" type="text" value="null" />
<br>
<br>
<input type="button" value="JavacallHtml2" onclick="window.jsObj.JavacallHtml2()" />


</body>


</html>

阅读更多
个人分类: anroid笔记
想对作者说点什么? 我来说一句

android js 互相调用

2018年01月03日 30.95MB 下载

js调用对话框保存文件

2010年04月28日 600B 下载

link中调用js方法

2011年07月07日 2KB 下载

js调用AS flash函数

2012年11月05日 6KB 下载

JS调用C#后台方法

2010年08月20日 144KB 下载

js操作word打印

2017年12月14日 7KB 下载

WCF JS 调用案例 Jquery调用案例

2010年07月26日 235KB 下载

flex与js交互浅析.docx

2013年08月25日 17KB 下载

Qt内嵌浏览器与js通信

2017年06月28日 491B 下载

Android中WebView与js交互简单Demo

2016年08月16日 7MB 下载

没有更多推荐了,返回首页

不良信息举报

webview_android 与js调用

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭