iOS推送通知的位置请求(当应用程序未在后台运行时)

时间:2012-01-23 22:59:43

标签: ios notifications location push

是否可以在应用程序未在后台运行时发送iOS推送通知以获取位置?正如查找我的iPhone一样..

3 个答案:

答案 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)

不,不是。抱歉。您可以发送推送通知,请求用户打开该应用,然后该应用就可以开始获取其位置。