Android WebView - 检测是否定义了 JS 函数
Android WebView - detect whether a JS function is defined
我正在编写一个在Android上的WebView下运行的HTML/JS应用程序。在某些情况下,可能无法加载包含应用程序的页面,或者可能会加载其他页面(例如 404 页面或类似页面)。通常,我需要在应用程序页面上运行一组JS函数,或者在应用程序页面未加载的情况下执行另一组操作。
我正在尝试通过检测适当的 JS 是否可用来检测是否已加载正确的页面,但我似乎找不到任何同步执行此操作的方法 - 只能通过调用 JS 函数并期望通过 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函数,并通过javascript接口"onLoaded"将其结果返回给Java。
我想
你可以做到,请看PhoneGap项目,你会找到你的答案。
PhoneGap是一个很棒的移动平台免费框架。
相关文章:
- 当js函数's已执行
- 调用php数组中的JS函数
- 为JS函数添加延迟
- 我如何制作一个JS函数,它可以从相似的原始颜色双向更改为某个颜色
- 使用JS函数来使用另一个函数的语法?node.js
- 将JS函数传递给Emscripten生成的代码
- 是否可以在使用headerphp函数后自动调用JS函数
- 如何在.js函数中检索来自其他模板的表单的目标值
- 简单的JS函数.需要对变量进行澄清
- 无法识别从php创建的Js函数
- 如何将对象传递给这个js函数
- 全局窗口热键在最小化chrome窗口时调用js函数
- 将重定向URL链接添加到JS函数
- 从PHP调用JS函数不起作用
- js函数堆栈传入变量,.hide()不起作用
- 当运行JS函数时,如何在c#中的Edgejs中获取错误文本
- 如何让JS函数自行执行
- 使用默认js函数的javascript中的日期的第二天
- 如何从页面中的jquery调用angular js函数控制器
- 从.js文件调用html中的js函数