如果JavaScript接口可用/已定义,有没有正确的方法来检查WebView中的JavaScript?
我的想法是在界面中定义一个检查方法,可以调用(如果可用)并简单地返回一个true。是不是有一个合适的官员'这样做的方法?因为如果接口不可用/未定义,它将引发错误。
我使用Android,这就是Java代码的原因:
webView.addJavascriptInterface(new WebAppinterface(this),"InterfaceName");
@JavascriptInterface
public void isInterfaceAvailabe (){
return true;
}
在Javascript中:
function hasJavaScriptInterface () {
if (InterfaceName.isInterfaceAvailable()){
return true;
}
else {
return false;
}
}
感谢您的回答!
答案 0 :(得分:8)
首先,您需要检查InterfaceName
是否实际导出,即 - 它是否作为window
对象上的属性存在。您可以通过以下几种方式实现:
if ("InterfaceName" in window) ...
或
if (window.InterfaceName) ...
或
if (typeof window.InterfaceName === "function") ...
因为如果您只是尝试调用未定义的属性,则会收到错误:Uncaught TypeError: window.InterfaceName is not a function