我正在尝试使用新发布的 Urban Airship 插件在我的 iOS PhoneGap 2.0 应用程序中实现推送通知。当我从提供的示例应用程序将 index.html 加载到我的项目中时,一切正常。但是,当我使用我的应用程序的 index.html 时,该push
变量无法访问其原型函数。具体来说,在示例应用程序中:
document.addEventListener("deviceready", function() {
push = window.PushNotification;
console.log(typeof window.PushNotification); => 'function'
console.log(typeof push); => 'object'
但是我的应用程序中的相同代码会产生:
console.log(typeof push); => 'function'
因此push.enablePush()
或任何其他原型函数都是不可调用的。我已经尝试过解决方法,但它们最终破坏了设备注册的功能。我不知道为什么会发生这种情况,但我怀疑它可能与deviceready
触发事件之前执行的另一个插件或代码冲突。
虽然我确定原因是一个非常具体的问题,但我一般并不真正理解将变量分配给函数对象本身将如何导致变量存储实例化对象。不new
就是为了这个吗?为什么它在他们的代码中有效,但在我的代码中无效?