当应用程序处于 InActive 模式时如何处理静默推送通知?在 Objective C
How handle silent pushnotification when application is on InActive mode? In Objective C
是的,堆栈中也有类似的问题,到目前为止,我没有从这些问题中找到任何合适的并发答案。
当我收到静默推送通知时,如何下载任何数据或调用 web-api?
我的代码如下..
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
{
NSDictionary *dicAPS = [userInfo objectForKey:@"aps"];
if(application.applicationState == UIApplicationStateBackground) {
// This is working..
[self callWebService];
}
else if(application.applicationState == UIApplicationStateInactive)
{
// This is not working..
[self callWebService];
}
else
{
// This is working..
//Show an in-app banner
}
}
注意:
1) 在网页端,我已经将 "content-available" 添加为 1。
2) 我已经在 Plist 中添加了下面的键。
<key>UIBackgroundModes</key>
<array>
<string>remote-notification</string>
</array>
希望我能从你的回答中得到新的希望。
此致。
如果您的应用处于非活动模式,您将无法处理任何类型的远程或本地通知。当出现任何其他应用程序(如呼叫、消息或任何其他应用程序)时,应用程序将变为非活动状态。
如果你想做一些必要的事情,你可以在 applicationDidBecomeActive
中借助任何网络服务来处理它。
你处理的方式不对。
如果您的应用处于 InActive 状态,"didReceiveRemoteNotification" 不会被调用。
在 'AppDelegate' 中的 "didFinishLaunchingWithOptions" 方法中使用以下代码来处理此状态。
//Handling PUSH NOtIFICATIONs when app is killed
NSDictionary *pushDic = [[NSDictionary alloc]init];
pushDic = [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
if (pushDic)
{
[self callWebService];
}
是的,堆栈中也有类似的问题,到目前为止,我没有从这些问题中找到任何合适的并发答案。
当我收到静默推送通知时,如何下载任何数据或调用 web-api?
我的代码如下..
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
{
NSDictionary *dicAPS = [userInfo objectForKey:@"aps"];
if(application.applicationState == UIApplicationStateBackground) {
// This is working..
[self callWebService];
}
else if(application.applicationState == UIApplicationStateInactive)
{
// This is not working..
[self callWebService];
}
else
{
// This is working..
//Show an in-app banner
}
}
注意:
1) 在网页端,我已经将 "content-available" 添加为 1。
2) 我已经在 Plist 中添加了下面的键。
<key>UIBackgroundModes</key>
<array>
<string>remote-notification</string>
</array>
希望我能从你的回答中得到新的希望。
此致。
如果您的应用处于非活动模式,您将无法处理任何类型的远程或本地通知。当出现任何其他应用程序(如呼叫、消息或任何其他应用程序)时,应用程序将变为非活动状态。
如果你想做一些必要的事情,你可以在 applicationDidBecomeActive
中借助任何网络服务来处理它。
你处理的方式不对。
如果您的应用处于 InActive 状态,"didReceiveRemoteNotification" 不会被调用。
在 'AppDelegate' 中的 "didFinishLaunchingWithOptions" 方法中使用以下代码来处理此状态。
//Handling PUSH NOtIFICATIONs when app is killed
NSDictionary *pushDic = [[NSDictionary alloc]init];
pushDic = [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
if (pushDic)
{
[self callWebService];
}