我们如何在后台获取推送通知

时间:2013-11-19 06:45:57

标签: ios apple-push-notifications apns-php

我正在接收有效负载消息中的推送通知我正在接收一个带有消息作为推送通知的URL。但我不想向用户显示网址我想只向用户显示消息。可以从ios那边。

4 个答案:

答案 0 :(得分:1)

如果您使用url作为aps中的单独密钥,则可能只显示警报作为消息,否则任何消息都无法在后台修改消息。

 "aps": {
        "alert": "alert!",
        "sound": "default",
        "URL"  : "your url"
        }

答案 1 :(得分:0)

是的,它可能但它还取决于您创建有效负载的方式,但是当您使用链接和消息创建有效负载时很简单,请在您的代理处接收

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)pushChatObject {
      // get the message value and NSLog is or set to UIAlert or in NSString
      (pushChatObject)[@"Message"];
}

答案 2 :(得分:0)

你可以,但你不应该,因为

  

发送通知是“尽力而为”,不能保证。它是   不打算向您的应用程序提供数据,只是为了通知用户   有新的数据可用。   (c)Apple

将通知消息指定为

{
    "aps": {
        "alert": "alert!",
        "sound": "default"
    },
    "URL": "http://apple.com"
}

当您在应用程序中收到通知时,只需在通知字典中检查您的参数:

// Place this method to AppDelegate.m
- (void)application:(UIApplication *)application didReceiveRemoteNotification:
                                         (NSDictionary *)notification {      
    if ([notification objectForKey:@"URL"]) {
        NSString *url = [[notification objectForKey:@"URL"] stringValue];
    }
}

查看Apple的本地和推送通知编程指南的this section以获取更多信息

答案 3 :(得分:0)

我认为在这种情况下,您可以使用alert属性的Child属性,使用1个参数作为警报,将另一个参数用作url,如:     “aps”:{         “alert”:{                     “loc-key”:“ALERT”,                     “loc-args”:[“您的提示信息”,“您的网址”]                   },         “声音”:“默认”     }

当设备收到通知时,它使用“ALERT”作为键来查找当前语言的.lproj目录中Localizable.strings文件中的关联字符串值。假设当前本地化具有Localizable.strings条目,例如:“ALERT”=“%@”;

稍后您可以使用aps NSDictionary获取您的网址。