<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">1.解决了4.2以下添加JavaScriptInterfaces能够调用Class的漏洞 github 上参考了一国内哥们写的</span>
2.解决了主线程或者子线程调用webview 执行js 返回结果异步繁琐的问题
for 1: 动态添加方法给js js调用 传方法名 参数名 android端利用反射 调用完了从map中删除对象。
for2:JSExecutor类中
最后在JavaJsHelper封装的调用方法
再看一下 mainactivity 是怎么调用的
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewGroup content = (ViewGroup) findViewById(R.id.content);
CompatibleWebView webview = new CompatibleWebView(this);
content.addView(webview, 0, 0);
JavaJsHelper jsHelper = new JavaJsHelper(webview);
JSONObject params = new JSONObject();
jsHelper.response("test", params, new JsReturnDataCallback() {
@Override
public void result(JavaJsResult result) {
Log.d("123", result.isOk() + "");
}
});
}
}
下载地址 给2分吧