Swift Apple Watch 2.0验证didReceiveRemoteNotification收到通知
不久前,我写了一个可以在iPhone上运行的应用程序。该应用程序通过APN(苹果推送通知)接收订单草案编号,并使用网络技术显示订单详细信息,以便用户批准。在iPhone上,一切正常。APN到达后,您选择它,并可以批准或拒绝APN引用的订单。除了APN,我的手表上的所有东西都在工作。APN到达,应用程序启动,它显示一个审批订单,但它使用硬编码版本,而不是来自APN的版本 APN采用“销售订单草稿XXX新审批申请”的形式,其中XXX为整数 我正在尝试使用: 使用Completion completionHandler:((WKUserNotificationInterfaceType)->Void)重写func-didReceiveRemoteNotification(远程通知:[NSObject:AnyObject]){ //当需要显示远程通知时,调用此方法。 //如果您使用动态通知接口,请实现它。 //尽快填充动态通知界面。 // //填充动态通知接口后,调用完成块Swift Apple Watch 2.0验证didReceiveRemoteNotification收到通知,swift,apple-push-notifications,watchkit,apple-watch,watchos-2,Swift,Apple Push Notifications,Watchkit,Apple Watch,Watchos 2,不久前,我写了一个可以在iPhone上运行的应用程序。该应用程序通过APN(苹果推送通知)接收订单草案编号,并使用网络技术显示订单详细信息,以便用户批准。在iPhone上,一切正常。APN到达后,您选择它,并可以批准或拒绝APN引用的订单。除了APN,我的手表上的所有东西都在工作。APN到达,应用程序启动,它显示一个审批订单,但它使用硬编码版本,而不是来自APN的版本 APN采用“销售订单草稿XXX新审批申请”的形式,其中XXX为整数 我正在尝试使用: 使用Completion completi
/*
if let remoteaps:NSDictionary = remoteNotification["aps"] as? NSDictionary{
if let remoteAlert:NSDictionary = remoteaps["alert"] as? NSDictionary{
handleNotification( remoteAlert );
}
}
let remoteaps:NSDictionary = (remoteNotification["aps"] as? NSDictionary)!
handleNotification(remoteNotification )
*/
let alert = remoteNotification["apps"]!["alert"]! as! NSDictionary
var draftNum = alert ["body"] as! String
draftNum = draftNum.stringByReplacingOccurrencesOfString("New approval request for sales order draft", withString: "")
MyDraft.draft = draftNum.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
completionHandler(.Custom)
}
myDraft.drafts是InterfaceController.swift中定义的结构。上面的代码来自NotificationController.swift。我在Google上花了很多时间,但到目前为止还没有找到继续的方法。我如何确认我在这里?有没有更好的方法来解析APN?当我通过应用程序触发应用程序时,如何使打印语句可见请注意,我已经将调试器附加到了监视进程,但我从未在Xcode输出窗口中看到过任何东西
谢谢,,
Duncan更多的研究,我认为应该用override func handleActionWithIdentifier(identifier:String?,forRemoteNotification remoteNotification:[NSObject:AnyObject])来处理通知,但该函数仍然没有被调用:(如果我使用模拟事件,模拟手表应用程序会捕获事件并提取订单号。这正是我想要它做的。当我向手表发送APN时,它会调用应用程序,但无法从APN中提取订单号。模拟事件和实际事件是相同的。我缺少什么?更多研究,我认为通知应该d将由override func handleActionWithIdentifier(标识符:String?、forRemoteNotification remoteNotification:[NSObject:AnyObject])处理仍显示未调用函数:(如果我使用模拟事件,模拟手表应用程序会捕获事件并提取订单号。这正是我想要它做的。当我向手表发送APN时,它会调用应用程序,但无法从APN中提取订单号。模拟事件和实际事件是相同的。我缺少什么?