JsBridage

Js与原生交互的方式:

通过注入对象或拦截 URL SCHEME实现JSBridge

原生调用JS(webView.loadUrl)

image-20210410155659542

Js调用原生

1. 注入对象(webView.addJavaScriptInterface)

​ Android4.2前addJavascriptInterface接口存在注入漏洞,即JS可以通过反射获取到native端的其他接口,进行其他非法操作,所以4.2之后升级增加了JS只能访问带有 @JavascriptInterface注解的Java函数的限制。

image-20210410160008340

2. 拦截 URL SCHEME(覆盖shouldOverrideUrlLoading)

​ 更好的兼容性,创建请求,需要一定的耗时

image-20210410155928750

Author

white crow

Posted on

2021-04-10

Updated on

2024-03-25

Licensed under