我的Titanium应用程序中有一个webview,当我要求它检查变量的类型时返回一个空字符串。本练习的目的是确定页面上是否存在以不同形式重新加载自身的函数。
var hasAuth = self.registerView.evalJS("typeof authenticate;")
这在iOS中运行良好,事实上在Android中它也适用于很多场合。然而在Android上,它有时会返回虚无,表示为“未定义”。
PS:不,问题不在于在javascript字符串中包含'return'。 Titanium会为您做到这一点,如果您这样做也会导致错误。
答案 0 :(得分:0)
在这种情况下的解决方案结果是:
var hasAuth = self.registerView.evalJS("'' + typeof authenticate;")
不知何故,evalJS可以使typeof工作,但如果该行以typeof开头则不行。
答案 1 :(得分:0)
Titanium的webView加载事件的问题是它经常过早发生。至少在Android上。当它过早触发时,还没有一个'authenticate'函数,其类型可以返回。
问题不在于evalJS,而在于加载事件的时间。