是否可以在应用程序未在后台运行时发送iOS推送通知以获取位置?正如查找我的iPhone一样..
答案 0 :(得分:4)
UIRemoteNotification 是您的朋友。
1)注册您的应用程序以进行远程推送通知:
[[UIApplication sharedApplication] registerForRemoteNotificationTypes: UIRemoteNotificationTypeAlert |
UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound];
2)在applicationDidFinishLaunching上实现逻辑(处理应用程序关闭时到达的推送通知)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
if([launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]) {
//if we're here, apps was launched due to Remote Notification
}
//...
}
3)在didReceiveRemoteNotification上实现登录(以处理应用程序在前台运行时到达的推送通知)
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
//...
//business logic for GPS Position
//...
}
在第2步和第3步,实施您的业务逻辑以获得实际的GPS位置。
Apple Developer Documentation上的更多信息:http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008194-CH1-SW1
答案 1 :(得分:0)
当应用程序在后台运行时,推送通知唯一可以做的就是显示数字徽章,播放预先打包的声音和/或显示提醒。当您的应用程序处于推送状态且您的应用程序处于后台时,您的应用程序中没有可执行的代码。
答案 2 :(得分:-1)
不,不是。抱歉。您可以发送推送通知,请求用户打开该应用,然后该应用就可以开始获取其位置。