minSdkVersion>17时使用addJavascriptInterface对接非信任代码会被Play Store下架吗
结论
即使minSdkVersion大于17,应用仍有可能因违规使用addJavascriptInterface被Play Store拦截下架。
核心原因
- 谷歌针对
addJavascriptInterface的限制政策和API 17的反射漏洞修复没有绑定关系,政策的核心要求是不得将该接口用于非随应用打包的不可信内容,该规则不受应用最低系统版本限制。即便API 17之后已修复恶意JS通过反射调用未授权方法的问题,你主动暴露的接口仍可能被恶意网页利用执行预期外操作,依旧属于安全风险范畴。 - Play Store审核采用静态扫描+动态检测结合的机制,只要检测到应用使用了
addJavascriptInterface,就会进一步核查WebView加载的内容来源:如果仅加载本地打包到APK内的可信HTML/JS资源,且你可以明确说明暴露接口的用途和安全边界,大概率可以正常过审;如果应用会加载外部URL、用户输入的网页内容,不管minSdkVersion是多少,都会被判定为违规。
优化建议
- 若你的WebView仅加载本地内置静态资源,可在提交审核时在备注中明确说明
addJavascriptInterface的使用场景、仅作用于本地可信代码,即可正常过审。 - 若确实需要加载外部内容且需要覆盖API 21-22用户,可以选择通过
shouldOverrideUrlLoading拦截JS自定义Scheme请求的方式实现两端通信,该方案兼容性好、实现复杂度低,也完全符合Play Store的安全规范。
内容的提问来源于stack exchange,提问作者Adam Burley
相关产品推荐
相关产品推荐

