我的应用程序应该在每天结束的时间 X 向 Twitter 发布一些消息。此时应用程序可能没有运行 X,但它仍然必须发布该消息。我不想每天要求执行此任务来打扰用户。
我可以使用推送通知以静默方式(没有任何警报视图弹出窗口、声音或其他任何内容)在我的应用程序中每天固定时间执行某些任务,即使它没有运行?
谢谢
您可以通过推送发送三种“通知”机制:警报、声音和徽章值。推送通知的工作方式是在手机上启动应用程序并使用这些值将“推送有效负载”交给它。即使你关闭了所有这三种机制,操作系统仍然必须每次启动你的应用程序,这意味着用户会被打断。
简而言之,您不能无声无息地进行推送。我怀疑,从用户体验的角度来看,Apple 是否会允许在手机上发生事情,而不会以某种方式通知用户。
不。
您无法安排您的应用在未越狱的 iPhone 上运行的东西。
唯一的解决方案是在某个地方拥有一个单独托管的服务,您可以将应用程序中的详细信息推送到该服务,并代表您运行预定的更新。
默默地这样做不取决于你。iPhone 设备有一个配置,其中每个具有推送机制的应用程序都有设置,可以指定是否需要警报。如果设置为 yes,也会显示警报文本。
听起来您正试图在每天的特定时间“唤醒”您的应用程序以执行某种类型的任务。根据我对 iPhone 的了解,这是不可能的。你不能创建一个 cron 作业或在你指定的时间触发的东西。您可以在服务器端运行它,然后向用户推送通知,告诉他们该消息已发布到 twitter。
如果您使用的是越狱手机,我相信有一些方法可以做到这一点。
鉴于推送通知要求您的服务器发送通知,为什么不跳过一个步骤,让服务器代表用户直接将更新发送到 Twitter?您不能像您要求的那样使用推送通知来触发 iPhone 上的自动任务 - 用户必须采取接受通知的步骤才能发生任何事情。
如果你真的想通过电话来做,你可以在这里声明一个“长期”后台任务应该在这里(iphone应用程序编程指南)某个地方......,这样你就永远不会睡觉,你可以做到随你喜欢... :)