本例以加载本地Html文件来写Demo

WebView加载本地html文件,可以将Html文件放在:assets文件中

myWebView.loadUrl("file:///android_asset/XX.html");  
Android与JS交互,必须对WebView进行一下设置

WevSettings webSettings = webView.getSettings();webSettings.setJavaScriptEnable(true);

Android与JS的交互,需要创建一个桥接对象,通过桥接对象来实现交互

public class JSHook {        @JavascriptInterface        public void javaMethod(String p) {            if (!TextUtils.isEmpty(p)) {                text.setText(p);            }        }        @JavascriptInterface        public void showAndroid() {            final String phone = Build.MODEL;            MainActivity.this.runOnUiThread(new Runnable() {                @Override                public void run() {                    webView.loadUrl("javascript:show('" + phone + "')");                }            });        }    }

WebView通过addJavascriptInterface方法将js与Android通过桥接对象进行连接

webView.addJavascriptInterface(new JSHook(), "demo");


下面是整体代码

Html代码:

        Js与Android互调Demo    测试





MainActivity代码

public class MainActivity extends AppCompatActivity {    private static final String URL = "file:///android_asset/html.html";    private WebView webView;    private TextView text;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        text = (TextView) findViewById(R.id.text);        webView = (WebView) findViewById(R.id.webview);        webView.loadUrl(URL);        webView.getSettings().setJavaScriptEnabled(true);        webView.addJavascriptInterface(new JSHook(), "demo");    }    public class JSHook {        @JavascriptInterface        public void javaMethod(String p) {            if (!TextUtils.isEmpty(p)) {                text.setText(p);            }        }        @JavascriptInterface        public void showAndroid() {            final String phone = Build.MODEL;            MainActivity.this.runOnUiThread(new Runnable() {                @Override                public void run() {                    webView.loadUrl("javascript:show('" + phone + "')");                }            });        }    }}

布局文件xml代码

<?xml version="1.0" encoding="utf-8"?>      







更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 一款常用的 Squid 日志分析工具
  3. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  4. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  5. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  6. Android之Fragment多个页面切换实现
  7. 自定义时间控件
  8. android studio错误: 常量字符串过长
  9. Android高级技巧

随机推荐

  1. 高通平台android 环境配置编译及开发经验
  2. Android(安卓)项目开发填坑记 - 使用 Mul
  3. Android(安卓)Studio 及日常常用命令
  4. androidx升级注意事项
  5. Android(安卓)ListView 滑动背景为黑色的
  6. Android解析xml文件
  7. Android(安卓)API中隐藏的类使用(例如IWi
  8. Mac 下设置android NDK的环境
  9. Android(安卓)spinner控件的实现
  10. 低版本android project在高版本ADK中运行