0

我的 Titanium 应用程序中有一个 webview,当我要求它检查变量的类型时,它返回一个空字符串。本练习的重点是确定页面上是否存在以不同形式重新加载自身的函数。

var hasAuth = self.registerView.evalJS("typeof authenticate;")

这在 iOS 中运行良好,实际上在 Android 中也适用于许多场合。然而在 Android 上,它有时会返回虚无,表示为“未定义”。

PS:不,问题不在于在 javascript 字符串中包含“return”。Titanium 会为您做到这一点,如果您也这样做,它会导致错误。

4

2 回答 2

0

Titanium 的 webView 加载事件的问题是它经常触发得太早。至少在安卓上。当它过早触发时,还没有可以返回其类型的“身份验证”函数。

所以问题不在于 evalJS,而在于加载事件的时间。

于 2013-05-14T12:17:26.737 回答
0

在这种情况下,解决方案是:

var hasAuth = self.registerView.evalJS("'' + typeof authenticate;")

不知何故,evalJS 可以让 typeof 工作,但如果该行以 typeof 开头,则不能。

于 2013-05-14T11:35:35.573 回答