如何为天气应用程序实现温度徽章?

Posted

技术标签:

【中文标题】如何为天气应用程序实现温度徽章?【英文标题】:How to achieve temperature badge for weather app? 【发布时间】:2011-04-09 14:58:52 【问题描述】:

以这个应用为例。

这在幕后是如何运作的?

我知道您可以使用以下方法设置徽章:

[UIApplication sharedApplication].applicationIconBadgeNumber = somenumber;

但是,这需要在后台运行才能保持更新。但是,后台应用程序有 10 分钟的限制。我认为它与推送通知有关,但我不知道它究竟是如何工作的。

有什么想法吗?


我正在为此设置赏金。如果可能的话,我想要一个详细的分步过程,说明如何设置我的网络服务器来处理这些推送通知。

【问题讨论】:

这是我现在的计划。我会设置一个服务器,其中包含一个包含人们选择的位置的数据库,一个包含他们设备名称的链接密钥(用于推送,对吗?)。然后每小时一次,我会让我的服务器遍历所有位置并将温度推送到相关设备。我只是不知道如何开始。 我现在已经基本使用 UrbanAirship,因为这似乎是获得 Push 的最简单方法。但是,我不知道如何喂养这艘船。 ;) 【参考方案1】:

APNS(Apple 推送通知服务)可以选择仅显示带有标记的通知(无警报,无声音)。您可以在有效负载中指定它。这就是徽章的更新方式。

您可以让服务器将消息发送给用户或使用local notifications。但既然你想获取用户的天气信息,我想来自服务器的消息将是要走的路。

您还可以指定应用使用后台服务来获取更新的位置并使用此位置来获取天气信息。

这里有一些很好的参考。一旦掌握了窍门,实际上很容易推出自己的服务器/客户端

    http://blog.boxedice.com/2009/07/10/how-to-build-an-apple-push-notification-provider-server-tutorial/

    http://code.google.com/p/apns-php/

    http://www.easyapns.com/

【讨论】:

我会添加 easyapns.com 作为使用 php 设置推送服务器的有用资源 我本来打算用 UrbanAirship 之类的东西,但我不喜欢这个计划是有限的。我最终会花更多的钱来实现这一点,而不仅仅是让我的服务器继续运行。但是我完全没有使用 mysql 或 PHP 的经验。这是一艘正在下沉的船吗? 上面提到的链接实际上给出了如何实现它的实际示例。所以这不应该是困难的部分。 PHP 很容易理解。 对于EasyAPNs 是否比APNs PHP 更容易/更好有什么意见? 他们都使用 PHP。 EasyAPNs 提供了所需的脚本。因此,如果您对 PHP 没有很好的了解,我建议您使用 easyapns。此外,他们还有一个谷歌小组来讨论问题。【参考方案2】:

这里的 73 通常是您看到与等待您的应用相关的消息数量的方式。

我假设您可以设置和重置该数字,所以他们只是向您推送更新,说您有 73 条应用内消息在等着您,他们滥用该机制以华氏温度显示温度。

【讨论】:

我将如何设置这种顺序的东西? This is a good place to start.【参考方案3】:

你是对的,他们是通过 APNS(Apple PUSH 通知服务)来实现的。设置起来相当复杂,但是谷歌“iphone APNS”,你会发现比我能从头顶上突然想到的更好的指南。 Here's the one I used to get out service working。它可以很好地逐步完成整个过程。

设置完成后,您需要通过 APNS 通知传递“徽章”计数。 The documentation for how to do that is here.

【讨论】:

以上是关于如何为天气应用程序实现温度徽章?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 UITabBar 徽章添加边框?

如何为栏按钮添加徽章?

如何为我的第 6 个标签栏项目设置徽章值?

如何为 chrome 上的每个选项卡获取不同的徽章值?

Android之自定义控件实现天气温度折线图和饼状图

excel 2007如何用已知天气情况来判断温度,温度生成随机数。