应用程序关闭时的Swift2推送

Posted

技术标签:

【中文标题】应用程序关闭时的Swift2推送【英文标题】:Swift2 push when app is closed 【发布时间】:2015-10-23 12:28:37 【问题描述】:

我想每 15 分钟发出一次请求。然后我想向用户发送推送通知。

我使用这个代码。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
    // Override point for customization after application launch.

    // push
    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [UIUserNotificationType.Sound, UIUserNotificationType.Alert, UIUserNotificationType.Badge],categories:nil))


    // background fetch
    let settings = UIUserNotificationSettings(forTypes: [UIUserNotificationType.Sound, UIUserNotificationType.Alert, UIUserNotificationType.Badge], categories: nil)

    UIApplication.sharedApplication().registerUserNotificationSettings(settings)
    UIApplication.sharedApplication().setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum)

    return true


func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) 
    print("Complete");
    completionHandler(UIBackgroundFetchResult.NewData)

    getData();



func getData() -> Void 
    let p = PushService()
    p.Push("Changed")

它工作正常,但只有一次。 当我通过任务管理器关闭这个应用程序时,没有推送。 因此,即使用户关闭了我的应用程序,我如何每 15 分钟发送一次推送通知。 (如 WhatsApp 或其他信使)

我使用本地推送。

【问题讨论】:

您是否尝试过使用 Parse 进行推送通知处理?您可以使用 Parse Cloud Code 使用 Parse 自动推送通知(直到您想要的任何分钟、小时、天)。我建议...更容易。 parse.com/apps/quickstart#cloud_code/windows @nhgrif 谢谢。所以就不能处理我想要的情况了? @rinyfo 所以我可以每 x 分钟发送一次推送通知,然后用我关闭的应用程序接收它们? 是的。对于更新、提醒、您希望用户采取的操作,无论您选择什么。但是,您需要用 javascript 编写 Cloud Core 代码。如果您有兴趣,我可以向您发送一些我为计时器准备的云代码的要点。 @LaMiy。 @rinyfo4 这太好了。谢谢! 【参考方案1】:

正如我自己和其他人所提到的,我不建议在应用程序中进行此操作。相反,您应该使用 Parse.com Cloud Code 来管理和设置推送通知: https://parse.com/apps/quickstart#cloud_code/window

此链接显示如何使用您的终端设置 Cloud Code。您也可以使用 Parse 自动化推送通知。 Parse 有相对较好的文档,可以帮助您入门。

这是 Parse 上的推送通知主页:https://parse.com/products/push

这里是推送通知的解析文档,它将引导您为推送通知注册您的应用程序:https://parse.com/docs/ios/guide#push-notifications 转到文档中的“发送推送”。这就是 Parse 将帮助您在 Parse 上使用 Cloud Code 设置推送通知的地方。

设置完成后,转到您的项目,然后“核心”并单击工作,您将看到此屏幕(注意,这是我的项目,我正在删除帖子。您可以随意命名):

将此链接用于您的推送通知 javascript 代码作为教程:How to send Push Notifications with Parse.com Cloudcode 这是一个很好的示例。在 Parse 上,正如我在上面发布的图片所示,您可以具体说明何时希望将推送通知推送给用户。

希望对你有帮助

【讨论】:

谢谢。我需要苹果开发者帐户吗?本地推送在没有开发者帐户的情况下工作,但在没有证书的情况下似乎无法工作。 是的。无论您想采用哪种方式(解析与否),您都需要首先使用 Apple 设置推送通知。在文档中 Parse 解释了如何做到这一点。 (Ps,如果有帮助,你也可以选择接受这个问题:)) 所以不支付苹果开发者会员费就不能发送远程推送? -.- 即使我只想将应用程序放在自己的设备上? 很遗憾没有...这是因为 Apple 要求在您提交 App Store 以供审核之前,使用您的 Apple 开发者帐户制作证书/注册应用程序。肯定会建议您注册一个帐户,特别是如果您想通过 crashalytics/TestFlight 等向朋友发送测试。 好的,谢谢。 100 美元的开发者许可对于一个只玩过 iOS 应用程序的学生来说有点太多了。

以上是关于应用程序关闭时的Swift2推送的主要内容,如果未能解决你的问题,请参考以下文章

应用关闭时的 Android Studio 推送通知

Android推送通知,当应用程序关闭时我会得到不同的风格

在所有应用程序界面swift2中保持底部视图(如页脚)[关闭]

iOS 推送通知策略

在后台处理应用程序时的 iOS 推送通知

应用程序未运行时的远程推送通知崩溃