有没有办法从关闭的iPhone应用程序启动声音或弹出消息.就像"接收短信"一样
我不相信.Apple声称没有第三方应用程序可以在后台运行(即使他们的一些应用程序这样做).这就是为什么去年夏天有很多关于"推送通知"的原因(不幸的是,这已经不存在了) - 这将允许应用程序从服务器发送一些数据,然后适当地响应它.
如果您为越狱的iPhone编写应用程序,则可能能够实现此目的,但只有那些已经越狱手机的用户才能安装和使用您的应用程序.
是的,在最初回答问题后,这实际上已经改变了.
目前,封闭式应用程序至少有两种播放声音或弹出窗口的方式.
应用程序可以在运行时注册本地通知,即使应用程序已关闭,也会在将来调用该通知.通知将显示弹出窗口并可选择播放声音或在应用程序的图标上设置徽章.实现这一点很简单:
id localNotif = [[NSClassFromString(@"UILocalNotification") alloc] init]; if (!localNotif) { return; } [localNotif setTimeZone:[NSTimeZone defaultTimeZone]]; [localNotif setAlertBody:NSLocalizedString(@"Hello!",nil)]; [localNotif setAlertAction:NSLocalizedString(@"Hello", nil)]; [localNotif setSoundName:UILocalNotificationDefaultSoundName]; [localNotif setFireDate:[[NSDate date] addTimeInterval:(60*60)]]; [localNotif setFireDate:[[NSDate date] addTimeInterval:(24*60*60)]]; [[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; [localNotif release];
应用程序(在用户许可的情况下)可以向远程服务器(您的服务提供商或服务提供商)注册自己,以接收从您(通过Apple的系统)传递给它的推送通知.一旦收到,应用程序将可选地显示弹出窗口,播放声音和/或更改应用程序图标上的徽章.Apple文档中有一些示例代码用于实现此方面的iPhone,以及一些为服务器端浮动的开源项目.您可以通过使用Urban Airship之类的服务绕过必须实现自己的服务器端.