美文网首页
java 暴漏 一个对象给 webview

java 暴漏 一个对象给 webview

作者: 苍老师的眼泪 | 来源:发表于2024-06-18 17:08 被阅读0次

    引入注释类,后面用来声明一些方法

    import android.webkit.JavascriptInterface;
    

    定义一个java对象,这个对象传递给webview, 就可以在网页里面调用该对象的方法了

        public class WebAppInterface {
            Context mContext;
    
            WebAppInterface(Context context) {
                mContext = context;
            }
    
            @JavascriptInterface    // 必须要声明所有的方法
            public void exit_app() {
                finish();
            }
        }
    

    webview需要实例化该对象,第二个参数是定义对象在webview里面的变量名

            webView.addJavascriptInterface(new WebAppInterface(this), "my_android_object");
    

    在webview里面使用该对象:

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        
    
        <button onclick="clicked()">test</button>
    
        <script>
            
            function clicked() {
                if(typeof my_android_object !== "undefined" && my_android_object !== null) {
                    try {
                        my_android_object.exit_app();
                    } catch (e) {
                        alert(JSON.stringify(e))
                    }
                } else {
                    alert("没找到定义的java对象");
                }
            }
    
    
        </script>
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:java 暴漏 一个对象给 webview

          本文链接:https://www.haomeiwen.com/subject/zvwfcjtx.html