繁体   English   中英

Android WebView - 检测是否定义了一个JS function

[英]Android WebView - detect whether a JS function is defined

我正在编写一个在 Android 上的 WebView 下运行的 HTML/JS 应用程序。在某些情况下,可能无法加载包含该应用程序的页面,或者可能会加载另一个页面(例如 404 页面或类似页面)。 通常,我需要在应用程序页面上运行一组 JS 函数或采取另一组操作以防应用程序页面未加载。

我试图通过检测适当的 JS 是否可用来检测是否已加载正确的页面,但我似乎无法找到任何同步方式 - 只能通过调用 JS function 并期望通过JavasctiptInterface进行回调。 虽然这种方法是可行的,但我想知道是否有更好、更优雅、更可靠的方法来实现这一点。

我当然不能通过分析页面的 URL 来做到这一点——它可能是正确的,但内容有误。

有任何想法吗?

@JavascriptInterface
public void onLoaded(String result) {
    if (result.equals("function")) {
        // defined
    } else {
       // not defined
    }
}

private void checkJSFunction() {
    loadUrl("javascript:yourJSInterfaceName.onLoaded(typeof yourFunctionName)");
}

更新:此代码将检查由“typeof”定义的 JS function,并通过 javascript 接口“onLoaded”将其结果返回给 java。

我认为你可以做到,请查看PhoneGap项目,你会找到答案。

PhoneGap 是一个很棒的移动平台免费框架。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM