当设备未连接到系统

时间:2015-07-24 12:35:28

标签: ios iphone xcode apple-push-notifications

我们想要创建一个ios应用程序,其工作主要取决于Apple推送通知。我们为此创建了服务器,服务器成功发送消息。但问题是应用程序在后台运行时不会接收消息而没有连接xcode用于静默推送消息。同时,当它通过usb连接到xcode时,它可以正常工作。

我从服务器发送的Json有效负载如下

 {"aps":{"content-available":1},"data":"hai"}

编写的代码“didReceiveRemoteNotification”是

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{

    DEBUG_LOG(@"Remote notification received from server, silent mode");

    if(application.applicationState == UIApplicationStateInactive) {
        DEBUG_LOG(@"Application is not active now, suspended state");
        [self callNotificationMethod:@"Inactive"];

    } else if (application.applicationState == UIApplicationStateBackground) {
        DEBUG_LOG(@"Application is not active now, background state");
        [self callNotificationMethod:@"Background"];
    } else {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"CallOriginatedEvent"
                                                        message:@""
                                                       delegate:self
                                              cancelButtonTitle:@"Cancel"
                                              otherButtonTitles:@"showTitle", nil];
        [alert show];
    }
 completionHandler(UIBackgroundFetchResultNewData);
}

测试平台 操作系统版本:IOS 8.1及以上版本 设备:iPhone 5C,iPhone 5S,iPhone 6,iPhone 6 +

请指教.. 提前致谢

2 个答案:

答案 0 :(得分:0)

我认为您的解决方案非常简单 - 您创建了开发证书。尝试创建一个生产,它应该没问题。

除了这个解决方案,你应该检查:

  • 您是否已注册远程通知?
  • 你在applicationDidFinishLaunchingWithOptions
  • 中有适当的代码吗?
  • 您是否发送了适当的通知。

答案 1 :(得分:0)

当我从USB断开iphone时,无声通知对我来说不起作用,一旦我将APNS通知的优先级添加到下面就开始工作而没有USB连接。

{" APS" {'内容可用' => 1,'优先级' =大于10 },"数据":"测试"}