Swift Apple Watch 2.0验证didReceiveRemoteNotification收到通知

时间:2015-11-14 23:36:56

标签: swift apple-push-notifications watchkit apple-watch watch-os-2

前段时间我写了一个适用于我的iPhone的应用程序。该应用程序通过APN(Apple推送通知)接收订单草稿编号,并使用Web技术显示订单详细信息,以便用户可以批准。在iPhone上,一切都按预期工作。 APN到达,您选择它,并且可以批准或拒绝APN引用的订单。除了APN,我手表上的一切都在工作。 APN到达并且应用程序启动,它显示批准订单,但它使用硬编码版本,而不是来自APN的版本。

APN采用“销售订单草案XXX的新批准请求”的形式,其中XXX是整数。

我正在尝试使用:

覆盖func didReceiveRemoteNotification(remoteNotification:[NSObject:AnyObject],withCompletion completionHandler:((WKUserNotificationInterfaceType) - > Void)){         //需要显示远程通知时调用此方法。         //如果使用动态通知界面,请实施它。         //尽快填充动态通知界面。         //         //填充动态通知界面后,请调用完成块。

    /*

    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?当我通过APN触发应用程序时,如何使打印语句可见?我已将调试器附加到监视进程,但我从未在Xcode输出窗口中看到任何内容。

谢谢你, 邓肯

0 个答案:

没有答案