Android与js交互安卓工具相关

Android与Js交互

2019-06-06  本文已影响50人  我挺平凡

1. 前言

2. 交互方式总结

对于Android调用JS代码的方法有2种:

1.通过WebView的loadUrl()
2.通过WebView的evaluateJavascript()

对于JS调用Android代码的方法有3种:

1.通过WebView的addJavascriptInterface()进行对象映射
2.通过 WebViewClient 的shouldOverrideUrlLoading ()方法回调拦截 url
3.通过 WebChromeClient 的onJsAlert()、onJsConfirm()、onJsPrompt()方法回调拦截JS对话框alert()、confirm()、prompt() 消息

3. 对比

image.png

4.WebView的坑

Ⅰ.WebView的销毁和内存泄漏问题。WebView的完全销毁是件麻烦事,一旦销毁流程不正确,极易容易导致内存泄漏。

原因:WebView会关联一个Activity,Web4View执行的操作是在新线程当中回收,时间Activity没有办法确认,Activity的生命周期和WebView线程生命周期不一致导致WebView一直执行,因为WebView内部持有Activity的引用,导致Activity一直不能被回收,原理类似于匿名内部类持有外部类的引用一样。那么如何解决呢?

解决方案如下:
a.使含WebView的界面在独立进程(销毁时System.exit(0)),简单暴力,涉及到进程间通信。(开发过程中常用)
b.动态添加WebView,对传入WebView中使用Context弱引用,动态添加WebView意思在布局中创建一个ViewGroup用来放置WebView,Activity创建add进来,Activity停止时remove掉。

上一篇下一篇

猜你喜欢

热点阅读