如果JavaScript接口(interface)可用/已定义,是否有任何适当的方法可以在WebView中检入JavaScript?
我的想法是在接口(interface)中定义一个检查方法,(如果有的话)可以被调用并简单地返回true。是否没有适当的“官方”方式来做到这一点?因为如果接口(interface)不可用/未定义,它将引发错误。
我正在使用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;
}
}
感谢您的回答!
最佳答案
首先,您需要检查InterfaceName
是否实际上已导出,即-它是否作为属性出现在window
对象上。您可以通过以下几种方法进行操作:
if ("InterfaceName" in window) ...
要么
if (window.InterfaceName) ...
要么
if (typeof window.InterfaceName === "function") ...
因为如果您仅尝试调用未定义的属性,则会收到错误消息:
Uncaught TypeError: window.InterfaceName is not a function