【问题标题】:Setup webhook for push iOS notifications为推送 iOS 通知设置 webhook
【发布时间】:2015-03-01 07:11:31
【问题描述】:

我使用的 API 不支持直接 iOS 通知,而是使用 webhook。当我联系他们了解如何使用它时,我得到了回复

我们不支持将 iOS 推送通知直接发送到您的客户端应用程序。 您可以使用 webhook 通知来接收更新,然后您的脚本可以直接将通知中继或发送到您的客户端应用程序。

我有一个地方可以输入 webhook 的 URL。

我将如何实现

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    // Store the deviceToken
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    //handle push notification
}

我需要什么才能接收到我的应用程序的推送通知?

【问题讨论】:

  • 您使用的 API 是什么?它叫什么名字?
  • @Frank:我能帮你解答吗?
  • 是的。我使用 PHP 的经验为零,任务听起来令人生畏。当发出 put 请求时,我收到了一个带有此 example 的请求,将整个字符串发送到我的 iOS 应用程序将是修道院。这是一个旧请求,一个新请求在customFields 字典中有一个设备令牌 ID。如果我可以将该字符串发送到该设备,那就太好了!如果没有别的,只需跟踪号和 slug 就足够了。
  • 太棒了。很好,我可以帮助你。请记住接受我的回答并奖励赏金:-) 我将继续与您聊天以完全解决您的问题(不仅仅是 OQ)!你能把请求发送到pastebin或类似的吗?我没有发货后帐户,也无法访问此通知。我可以为你写几行 PHP(如果不是太多的话)
  • 我想说:有可能只用几行 PHP 就可以实现,如果不是太多的话,我可以为你写。您是否有任何服务器端编程语言或运行 Web 服务器的经验?也许你可以使用与 PHP 不同的东西

标签: ios objective-c notifications apple-push-notifications webhooks


【解决方案1】:

webhook 基本上是一种为外部应用程序连接提供的服务。例如,MailChimp(一种时事通讯服务)使用 webhook 在发送预定时事通讯时通知您。它可以是响应 TCP 连接的任何东西,因此您也可以用 C 或类似语言编写服务器。

我设置了一个服务器,它提供了一个 webhook(一个简单的 PHP 文件),MailChimp 服务器通过 HTTP 查询该 webhook。然后我使用 PHP 中的 POSTed 信息自己生成和交付 APN。

我为此编写了一个自定义 PHP 类,但您可以使用非常流行的 ApnsPHP 类。您一定要运行自己的服务器、托管服务器或任何支持 PHP 的网络托管服务。

在我的例子中,我还将所有这些实现为一个 WordPress 插件,用于我的一个客户的自定义主题。

您必须在 API 提供者字段中输入的 URL 是您的 PHP 脚本(或任何其他脚本或服务器程序)的 URL。

您首先需要在-[NSApplicationDelegate applicationDidFinishLaunchingWithOptions:] 中注册设备以接收推送通知。这将使您的设备收到有关您的应用的通知。

你提到的两种方法是用来处理收到的信息的。

这个话题非常广泛,所以我不能给你一个完整的实现。但我会推荐this tutorial on raywenderlich.com,其中包含示例代码以及服务器端 PHP 脚本。本教程确实教会了我很多关于 APN 的知识。

【讨论】:

    【解决方案2】:

    当他们说他们不支持推送通知时,我认为他们是认真的,所以您不会使用这两种方法......他们的意思是,无论您使用哪种方法都必须从 webhook 获取数据,您需要以某种方式手动呈现推送(例如 UIAlertView)

    【讨论】:

    • 一般的想法是,当更新被发布到 webhook 时,webhook 脚本会向应用程序发送通知,该应用程序将依次运行 didReceiveRemoteNotification
    • 我想我的困惑是谁在获取 webhook 更新?您的客户端或服务器脚本?如果是第一个,正如我所说,你需要自己手动显示通知,如果是第二个,你需要让你的脚本通过苹果的 APNS 发送一个真正的推送通知,这是一个很好的起点developer.apple.com/library/ios/documentation/…
    • WebHook 始终与服务器相关。如果客户端要连接到 Web 挂钩,我宁愿将其命名为“REST API”(即使它只执行一些任务)。您无法从 Internet(仅 LAN)连接到基于 iOS 的服务器。所以不应该有任何混淆。
    • 我见过人们尝试比这更奇怪的事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多