- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已尝试通过此处的教程应用 iOS 推送通知 -
http://devgirl.org/2012/10/19/tutorial-apple-push-notifications-with-phonegap-part-1/
如教程说明所示,我将推送通知文件夹实现到 xcode 插件文件夹,然后将以下代码添加到 AppDelegate.m 类
#import "PushNotification.h"
/* START BLOCK */
#pragma PushNotification delegation
- (void)application:(UIApplication*)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
PushNotification* pushHandler = [self.viewController getCommandInstance:@"PushNotification"];
[pushHandler didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}
- (void)application:(UIApplication*)appdidFailToRegisterForRemoteNotificationsWithError:
(NSError*)error{
PushNotification* pushHandler = [self.viewController getCommandInstance:@"PushNotification"];
[pushHandler didFailToRegisterForRemoteNotificationsWithError:error];
}
- (void)application:(UIApplication*)application didReceiveRemoteNotification: (NSDictionary*)userInfo
{
PushNotification* pushHandler = [self.viewController getCommandInstance:@"PushNotification"];
NSMutableDictionary* mutableUserInfo = [userInfo mutableCopy];
// Get application state for iOS4.x+ devices, otherwise assume active
UIApplicationState appState = UIApplicationStateActive;
if ([application respondsToSelector:@selector(applicationState)]) {
appState = application.applicationState;
}
[mutableUserInfo setValue:@"0" forKey:@"applicationLaunchNotification"];
if (appState == UIApplicationStateActive) {
[mutableUserInfo setValue:@"1" forKey:@"applicationStateActive"];
[pushHandler didReceiveRemoteNotification:mutableUserInfo];
} else {
[mutableUserInfo setValue:@"0" forKey:@"applicationStateActive"];
[mutableUserInfo setValue:[NSNumber numberWithDouble: [[NSDate date] timeIntervalSince1970]] forKey:@"timestamp"];
[pushHandler.pendingNotifications addObject:mutableUserInfo];
}
}
/* STOP BLOCK */
并在 index.js 中添加以下 javascript 代码
// license to apache software .....
var app = {
myLog: document.getElementById("log"),
initialize: function() {
this.bindEvents();
},
// Bind Event Listeners
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
document.addEventListener('resume', this.onResume, false);
},
onResume: function() {
app.myLog.value="";
// Clear the badge number - if a new notification is received it will have a number set on it for the badge
app.setBadge(0);
app.getPending(); // Get pending since we were reopened and may have been launched from a push notification
},
onDeviceReady: function() {
app.register(); // Call to register device immediately every time since unique token can change (per Apple)
// This will cause to fire when app is active already
document.addEventListener('push-notification', function(event) {
console.log('RECEIVED NOTIFICATION! Push-notification! ' + event);
app.myLog.value+=JSON.stringify(['\nPush notification received!', event]);
// Could pop an alert here if app is open and you still wanted to see your alert
//navigator.notification.alert("Received notification - fired Push Event " + JSON.stringify(['push-//notification!', event]));
});
document.removeEventListener('deviceready', this.deviceready, false);
},
setBadge: function(num) {
var pushNotification = window.plugins.pushNotification;
app.myLog.value+="Clear badge... \n";
pushNotification.setApplicationIconBadgeNumber(num);
},
receiveStatus: function() {
var pushNotification = window.plugins.pushNotification;
pushNotification.getRemoteNotificationStatus(function(status) {
app.myLog.value+=JSON.stringify(['Registration check - getRemoteNotificationStatus', status])+"\n";
});
},
getPending: function() {
var pushNotification = window.plugins.pushNotification;
pushNotification.getPendingNotifications(function(notifications) {
app.myLog.value+=JSON.stringify(['getPendingNotifications', notifications])+"\n";
console.log(JSON.stringify(['getPendingNotifications', notifications]));
});
},
register: function() {
var pushNotification = window.plugins.pushNotification;
pushNotification.registerDevice({alert:true, badge:true, sound:true}, function(status) {
app.myLog.value+=JSON.stringify(['registerDevice status: ', status])+"\n";
app.storeToken(status.deviceToken);
});
},
storeToken: function(token) {
console.log("Token is " + token);
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","http://127.0.0.1:8888",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("token="+token+"&message=pushnotificationtester");
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
//a response now exists in the responseTest property.
console.log("Registration response: " + xmlhttp.responseText);
app.myLog.value+="Registration server returned: " + xmlhttp.responseText;
}
}
}
};
似乎 pushNotification.registerDevice 函数返回空状态。而且我仍然不确定为什么通知真实警报(“应用程序”想向您发送推送通知)未显示在 iOS 设备上。我错过了什么吗?是什么让 registerDeivce 函数返回空值??提前致谢。
最佳答案
如果注册失败意味着检查应用程序 ID 是否已启用并配置了生产或开发推送通知。如果没有启用它并检查或重新配置它并检查它。
关于iOS手机差距——推送通知不显示通知服务提示框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13174172/
我无法消除 IE7 中列表项之间的差距。 HTML: row 1.1
我用 jquery mobile 开发了一个 Phonegap 应用程序。它是一个单页应用程序,具有固定的页眉、固定的页脚和从左侧打开的面板。内容 DIV 为白色,面板从其默认颜色加载。 问题是当面板
我在我当前的元素中使用了 bootstrap,它工作正常但只有一个故障: 我有 3 col-sm-6彼此相邻,当第二个col-sm-6比第一、第三长col-sm-6向左移动,第一个和第三个之间出现间隙
我目前正在创建一个网站。但是,我在缩小页面最右侧的边距差距时遇到了一些问题 As seen in this picture我尝试将 body 设置为 margin 0px,但这没有帮助。任何帮助都将不
我的 OpenLayers map 有问题。我无法让瓷砖一 block 挨着另一 block 。我已经检查过侵入式 CSS,但没有找到任何东西。有人可以帮我解决这个问题吗? 我目前的代码是这样的:
我在制作 时遇到了问题我页面的标题链接展开以填满整个 在我的网页中标记。下面似乎有一个缺口,我不知道如何修复它。 我的导航栏也有类似的问题,随着我增加浏览器的大小,它不断扩展。 尝试将鼠标悬停在这个
当使用 Xcode 11 beta 5 在 iOS 13 beta 6 上运行应用程序时,我在呈现搜索结果 View Controller 时遇到了奇怪的间隙: 以下是如何设置的一些内容: let s
(PostgreSQL 8.4) 继续我的 previous example ,我希望通过窗口函数进一步理解间隙和孤岛处理。考虑下表和数据: CREATE TABLE T1 ( id SERIAL
我正在开发 PWA 网站。必须通过单击主屏幕图标来启动应用程序。问题是将 iPhone 旋转到横向位置后出现 20px 间隙。这个间隙超出了 Window 对象,所以我无法用 js 或 css 处理它
我注意到当位置设置为绝对时,表格单元格垂直对齐不起作用。我做错了什么吗? 非工作 sample bottom alignament is
我尝试添加各种标签并尝试添加相对路径:'//' 这些是我尝试过的各种meta标签 我也尝试过为相对路径添加“//”。 execIframe.contentWindow.location
我有一个 CSS 嵌套菜单在 IE 8 和 Firefox 中完美运行,但在 IE7 中它会在元素之间产生一个小间隙。这是我的 CSS: #nav, #nav ul { margin: 0;
我正在尝试使用 SwiftUI 在 HStack 中有两个 View 。但是,我一直在两种观点之间存在差距。 该问题出现在纵向和横向布局中。 我的代码: struct ContentView: Vie
我的 svg 左侧有一个小缝隙,我一辈子都无法修复它。请参阅下图了解我所指的内容。在左侧,您可以稍微看到图像。 我在 Chrome 和 Firefox 上注意到这个问题。知道问题可能是什么吗? .aw
当我在 Visual Studio 2010 中创建一个全新的 ATL 项目时,资源 ID 102 和 105 被遗漏了。这是故意的还是错误?这些 ID 在项目后期有什么用吗?我可以重新排序编号以使用
我使用 JQuery Mobile+Phone Gap 实现了 TableView A Adam Kinkaid Alex Wickerham Avery Johnson B
我是一名优秀的程序员,十分优秀!