1.首先上源码类图:
2. 和Cordova 3.5的区别:
2.1把webview封装到SystemWebViewEngine里面,然后CordovaWebViewImp依赖SystemWebViewEngine;
2.2 SystemWebViewEngine实现CordovaWebViewEnginer,有一些基本方法必须要实现,比如loadUrl(),getView();
2.3然而SystemWebViewEngine最后调用的还是SystemWebView的一些方法,只是一个壳,但是还做了一些事情:创建CordovovaBride,然后调用exposeJsInterface()进行接口暴露;
3.比3.5优化的地方:
3.1可以通过实现CordovaWebViewEnginer去更改需求。
3.2 更改了安全问题.
4.关于白名单问题
会在SystemWebViewClient的shouldInterceptRequest和shouldOverrideUrlLoading去拦截一下判断是否在允许的范围,然后做出相应的响应操作。