如果 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
关于javascript - 如何检查 WebView Javascript 接口(interface)是否可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35041785/