- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Cordova 2.1.0 在我的 iOS 应用程序上运行推送通知。
我关注了this guide严格来说,但我收到以下错误:
TypeError: 'undefined' is not a function (evaluating 'pushNotification.onDeviceReady()')
我不得不稍微修改脚本以在 this guide 之后为 2.0 版修复它,这似乎有效。
我这样调用 initPushwoosh()
onDeviceReady
:
window.addEventListener('load', function () {
document.addEventListener('deviceready', function () {
initPushwoosh();
}, false);
}, false);
PushNotification.js
文件如下:
(function(cordova) {
function PushNotification() {}
// Call this to register for push notifications and retreive a deviceToken
PushNotification.prototype.registerDevice = function(config, success, fail) {
cordova.exec(success, fail, "PushNotification", "registerDevice", config ? [config] : []);
};
// Call this to set tags for the device
PushNotification.prototype.setTags = function(config, success, fail) {
cordova.exec(success, fail, "PushNotification", "setTags", config ? [config] : []);
};
//Android Only----
PushNotification.prototype.unregisterDevice = function(success, fail) {
cordova.exec(success, fail, "PushNotification", "unregisterDevice", []);
};
PushNotification.prototype.startGeoPushes = function(success, fail) {
cordova.exec(success, fail, "PushNotification", "startGeoPushes", []);
};
PushNotification.prototype.stopGeoPushes = function(success, fail) {
cordova.exec(success, fail, "PushNotification", "stopGeoPushes", []);
};
//Android End----
//iOS only----
// Call this to send geo location for the device
PushNotification.prototype.sendLocation = function(config, success, fail) {
cordova.exec(success, fail, "PushNotification", "sendLocation", config ? [config] : []);
};
PushNotification.prototype.onDeviceReady = function() {
cordova.exec(null, null, "PushNotification", "onDeviceReady", []);
};
// Call this to get a detailed status of remoteNotifications
PushNotification.prototype.getRemoteNotificationStatus = function(callback) {
cordova.exec(callback, callback, "PushNotification", "getRemoteNotificationStatus", []);
};
// Call this to set the application icon badge
PushNotification.prototype.setApplicationIconBadgeNumber = function(badge, callback) {
cordova.exec(callback, callback, "PushNotification", "setApplicationIconBadgeNumber", [{badge: badge}]);
};
// Call this to clear all notifications from the notification center
PushNotification.prototype.cancelAllLocalNotifications = function(callback) {
cordova.exec(callback, callback, "PushNotification", "cancelAllLocalNotifications", []);
};
//iOS End----
// Event spawned when a notification is received while the application is active
PushNotification.prototype.notificationCallback = function(notification) {
var ev = document.createEvent('HTMLEvents');
ev.notification = notification;
ev.initEvent('push-notification', true, true, arguments);
document.dispatchEvent(ev);
};
/* cordova.addConstructor(function() {
if(!window.plugins) window.plugins = {};
window.plugins.pushNotification = new PushNotification();
}); */
window.pushNotification = new PushNotification();
})(window.cordova || window.Cordova || window.PhoneGap);
function initPushwoosh()
{
var pushNotification = window.pushNotification;
pushNotification.onDeviceReady();
pushNotification.registerDevice({alert:true, badge:true, sound:true, pw_appid:"17009-69D5F", appname:"Snow Day"},
function(status) {
var deviceToken = status['deviceToken'];
console.warn('registerDevice: ' + deviceToken);
},
function(status) {
console.warn('failed to register : ' + JSON.stringify(status));
navigator.notification.alert(JSON.stringify(['failed to register ', status]));
});
pushNotification.setApplicationIconBadgeNumber(0);
document.addEventListener('push-notification', function(event) {
var notification = event.notification;
navigator.notification.alert(notification.aps.alert);
pushNotification.setApplicationIconBadgeNumber(0);
});
}
最佳答案
这很奇怪,因为来自 github 的 Pushwoosh 示例几乎是开箱即用的。
确保在 cordova 脚本之后包含 PushNotification 脚本:
<script type="text/javascript" src="cordova-2.1.0.js"></script>
<script type="text/javascript" src="PushNotification.js"></script>
关于javascript - pushNotification.onDeviceReady 未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700369/
下面是我的脚本: var candata = {cantitle:"", candetail:"", imagesource:"", canlat:"", canlon:""}; var c
我正在创建我的第一个 Cordova 项目,我是 JavaScript 的新手。 我正在学习一些教程,但现在我正在将一些 JavaScript 代码集成到 index.js 文件中。 根据 Joerg
我有一个very simple app这适用于我的桌面。 当我通过 Adobe PhoneGap Build 进行测试时,它在以下行中引发异常: document.addEventListener
我正在制作一个应用程序,它创建一些将用户链接到另一个页面的元素。代码看起来像这样。 function showThis(){ $('').prependTo($('#updateCol')
我正在使用 PhoneGap (Cordova-1.5.0.js),并且遇到了这个问题:- 我有一个状态页面,显示多条记录(触发 ajax 调用后)。当我单击任何一条记录时,它会转到详细信息页面,在该
请看看并帮我解决这个问题。我头痛了2天。永远不会调用 onDeviceReady 函数。这是我的代码: DemoSimpleContro
我正在尝试使用 Cordova 2.1.0 在我的 iOS 应用程序上运行推送通知。 我关注了this guide严格来说,但我收到以下错误: TypeError: 'undefined' is no
请给我我的 React 应用程序混合应用程序,我正在向其中添加 cordova 框架。我成功地添加了 cordova 项目、构建、发布、在模拟器上模拟我的应用程序。 cordova 项目在我的应用程序
我是phonegap的新手,所以我只是尝试了一些东西,并从onDeviceReady方法开始。我遇到的问题是该方法没有触发。 这是我的完整代码,非常基本。 Splashscreen
下面的代码来自PhoneGap 3.0生成的index.js,我的问题是为什么它的设计不允许我们像平常一样使用this.receivedEvent(并获取事件对象作为参数)。 // The scope
我正在 phonegap (android) 中开发我的第一个应用程序。 index.html Device Properties Example
在我的 React 应用程序中,我尝试使用 Cordova 插件 ( cordovo-plugin-device ) 来获取用户的设备版本,如下所示 class LogoHeader extends
我在 android 开发中使用 phonegap。我写了那个 PoC,但是我不明白为什么它不改变配置文件变量的纬度。其实 alert(profile.latitude); 在之前运行 geoCode
在我的 Phonegap Android 应用程序中,我有以下 Javascript 代码: function onDeviceready() { window.plugins.webinte
所以我目前正在使用 Weinre 调试我的 PhoneGap 应用程序,但我不断收到以下错误... deviceready 在 5 秒后没有触发。 channel 未触发:onPluginsReady
您好,我正在使用 AngularJS 创建一个 PhoneGap 应用程序。这是我的 Controller : module.controller('MainController', function
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
我正在尝试将我的移动网站放入 PhoneGap 以创建“ native ”应用程序。因此我开始谷歌搜索,发现 onDeviceReady window.location 应该可以解决这个问题。 这个解
我正在使用 jQuery Mobile 编写 Cordova 项目。我有代码来检测用户滚动到底部。它可以工作,但我不知道为什么需要将代码放置在 deviceready 事件处理程序中?正在等待准备好东
我目前正在试验 React JS (v.0.14) 和 cordova。我想使用 cordova 文件插件从 Android 模拟器的 sdcard 中读取一些文件。 当我尝试启动该应用程序时,我总是
我是一名优秀的程序员,十分优秀!