如果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

10-07 18:55