我们都知道webview要和js交互,必须要有这么一句代码
//webview中注入交互对象“TagOne”
webView.addJavascriptInterface(new JsInterfaceObj(webView), "TagOne");
那么js调用java:
//java部分代码
class JsInterfaceObj{
@JavascriptInterface
public void test() {
Log.e("tag","hello world");
}
}
//JS部分代码
TagOne.test();
执行上面的js代码后,正常来说会打印"hello world"
但是有时会出现报错,无法调用;会出现下面的Log
Uncaught TypeError: TagOne.test is not a function
出现原因:TagOne被其他web app占用了;
比如:你开发了两款web app,其中一个app的交互对象是“TagOne”,然后另一个app的交互对象也是“TagOne”,那么就会出现这种情况,非常坑!