如何检查WebView Javascript接口是否可用?

时间:2016-01-27 15:44:06

标签: javascript java android webview interface

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

感谢您的回答!

1 个答案:

答案 0 :(得分:8)

首先,您需要检查InterfaceName是否实际导出,即 - 它是否作为window对象上的属性存在。您可以通过以下几种方式实现:

if ("InterfaceName" in window) ...

if (window.InterfaceName) ...

if (typeof window.InterfaceName === "function") ...

因为如果您只是尝试调用未定义的属性,则会收到错误:Uncaught TypeError: window.InterfaceName is not a function