美文网首页
Android 与H5之间的js交互

Android 与H5之间的js交互

作者: Yuri1996 | 来源:发表于2019-10-22 13:36 被阅读0次

    参考博客

    (一)Android端调用H5页面

    在Android端主要使用WebView来进行网页的加载,设置属性

    // 获取WebSetting对象
    WebSettings webSettings = webview.getSettings(); 
    // 设置支持javascript
    webSettings.setJavaScriptEnabled(true); 
    // 将Android里面定义的类对象AndroidJs暴露给
    javascript webview.addJavascriptInterface(new AndroidJs(MainActivity.this), "AndroidJs");
    

    调用方式:其中doAlert为H5页面的方法

    webview.loadUrl("javascript:doAlert()");
    

    (二)H5端调用Android页面

    H5端代码:

    <input type="button" value="打招呼" onclick="AndroidJs.showToast()"/>
    <input type="button" value="图书列表" onclick="AndroidJs.showList()"/>
    

    Android端代码:

    public class AndroidJs { 
        private Context mContext; 
    
        public AndroidJs(Context context) {
            this.mContext = context;
        }
        @JavascriptInterface public void showList() { new AlertDialog.Builder(mContext)
                    .setTitle("图书列表")
                    .setIcon(R.mipmap.ic_launcher)
                    .setItems( new String[]{"疯狂java讲义", "疯狂Android讲义", "轻量级java EE开发"}, null)
                    .setPositiveButton("确定", null).create().show();
        }
    
        @JavascriptInterface public void showToast() {
            Toast.makeText(mContext, "hello", Toast.LENGTH_LONG).show();
        }
    
    }
    

    注:AndroidJs是连接Android与Html的桥梁标识,也是一个进行数据交互的类;
    注:这里面的方法必须是共有的,类名与标识保持一致;

    允许使用h5 使用 localStorage

            /***打开本地缓存提供JS调用**/
            browser.getSettings().setDomStorageEnabled(true);
            // Set cache size to 8 mb by default. should be more than enough
            browser.getSettings().setAppCacheMaxSize(1024*1024*8);
    

    相关文章

      网友评论

          本文标题:Android 与H5之间的js交互

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