首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C2Call推送通知

C2Call推送通知
EN

Stack Overflow用户
提问于 2014-11-03 11:56:28
回答 2查看 283关注 0票数 1

您能帮我检查一下在配置过程中是否遗漏了什么吗?因为一旦应用程序被杀死,我就无法收到通知了。如果应用程序只是在最小化,就会显示一个呼叫通知,但对于即时消息,手机只会随着流行音乐震动,但没有显示任何通知。使用C2Call如何在AppDelegate子类中调用下面的方法。

代码语言:javascript
复制
[super application:didRegisterForRemoteNotificationsWithDeviceToken]; 



- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
    //[self registerDeviceToken:devToken];
    // Get Bundle Info for Remote Registration (handy if you have more than one app)
    NSString *appName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"];
    NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

    // Check what Notifications the user has turned on.  We registered for all three, but they may have manually disabled some or all of them.
    //

    NSUInteger rntypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];


    // Set the defaults to disabled unless we find otherwise...

    NSString *pushBadge = @"disabled";
    NSString *pushAlert = @"disabled";
    NSString *pushSound = @"disabled";

    if(rntypes == UIRemoteNotificationTypeBadge){
        pushBadge = @"enabled";
    }
    else if(rntypes == UIRemoteNotificationTypeAlert){
        pushAlert = @"enabled";
    }
    else if(rntypes == UIRemoteNotificationTypeSound){
        pushSound = @"enabled";
    }
    else if(rntypes == ( UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert)){         pushBadge = @"enabled";
        pushAlert = @"enabled";
    }
    else if(rntypes == ( UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)){         pushBadge = @"enabled";
        pushSound = @"enabled";
    }
    else if(rntypes == ( UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)){         pushAlert = @"enabled";
        pushSound = @"enabled";
    }
    else if(rntypes == ( UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)){
        pushBadge = @"enabled";
        pushAlert = @"enabled";
        pushSound = @"enabled";
    }

    // Get the users Device Model, Display Name, Unique ID, Token & Version Number
    UIDevice *dev = [UIDevice currentDevice];
    // NSString *deviceUuid=dev.uniqueIdentifier;
    NSString *deviceUuid = [[dev identifierForVendor] UUIDString];
    NSString *deviceName = dev.name;
    NSString *deviceModel = dev.model;
    NSString *deviceSystemVersion = dev.systemVersion;

    //Prepare the Device Token for Registration (remove spaces and < >)
    NSString *deviceToken = [[[[devToken description] stringByReplacingOccurrencesOfString:@"<"withString:@""]                               stringByReplacingOccurrencesOfString:@">" withString:@""] stringByReplacingOccurrencesOfString: @" " withString: @""];
    NSString *urlString = [@"/pushservice/apns/user/register"stringByAppendingString:@"r=user/register"];
     NSLog(@"devicetoken length: %i", [deviceToken length]);
    urlString = [urlString stringByAppendingString:@"&appname="];
    urlString = [urlString stringByAppendingString:appName];
    urlString = [urlString stringByAppendingString:@"&appversion="];
    urlString = [urlString stringByAppendingString:appVersion];
    urlString = [urlString stringByAppendingString:@"&deviceuid="];
    urlString = [urlString stringByAppendingString:deviceUuid];
    urlString = [urlString stringByAppendingString:@"&devicetoken="];
    urlString = [urlString stringByAppendingString:deviceToken];
    urlString = [urlString stringByAppendingString:@"&devicename="];
    urlString = [urlString stringByAppendingString:deviceName];
    urlString = [urlString stringByAppendingString:@"&devicemodel="];
    urlString = [urlString stringByAppendingString:deviceModel];
    urlString = [urlString stringByAppendingString:@"&deviceversion="];
    urlString = [urlString stringByAppendingString:deviceSystemVersion];
    urlString = [urlString stringByAppendingString:@"&pushbadge="];
    urlString = [urlString stringByAppendingString:pushBadge];
    urlString = [urlString stringByAppendingString:@"&pushalert="];
    urlString = [urlString stringByAppendingString:pushAlert];
    urlString = [urlString stringByAppendingString:@"&pushsound="];
    urlString = [urlString stringByAppendingString:pushSound];

    NSUserDefaults *def=[NSUserDefaults standardUserDefaults];
    [def setObject:deviceToken forKey:@"token"];
    [def synchronize];
   //[super application:didRegisterForRemoteNotificationsWithDeviceToken];

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-04 05:36:29

代码语言:javascript
复制
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {

    [super application:didRegisterForRemoteNotificationsWithDeviceToken];

   //[self registerDeviceToken:devToken];

  // Get Bundle Info for Remote Registration (handy if you have more than one app)

  NSString *appName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"];

  NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

  // Check what Notifications the user has turned on.  We registered for all three, but they may have manually disabled some or all of them.
//

  NSUInteger rntypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];


  // Set the defaults to disabled unless we find otherwise...

  NSString *pushBadge = @"disabled";
NSString *pushAlert = @"disabled";
NSString *pushSound = @"disabled";

if(rntypes == UIRemoteNotificationTypeBadge){
    pushBadge = @"enabled";
}
else if(rntypes == UIRemoteNotificationTypeAlert){
    pushAlert = @"enabled";
}
else if(rntypes == UIRemoteNotificationTypeSound){
    pushSound = @"enabled";
}
else if(rntypes == ( UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert)){         pushBadge = @"enabled";
    pushAlert = @"enabled";
}
else if(rntypes == ( UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)){         pushBadge = @"enabled";
    pushSound = @"enabled";
}
else if(rntypes == ( UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)){         pushAlert = @"enabled";
    pushSound = @"enabled";
}
else if(rntypes == ( UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)){
    pushBadge = @"enabled";
    pushAlert = @"enabled";
    pushSound = @"enabled";
}

// Get the users Device Model, Display Name, Unique ID, Token & Version Number
UIDevice *dev = [UIDevice currentDevice];
// NSString *deviceUuid=dev.uniqueIdentifier;

NSString *deviceUuid = [[dev identifierForVendor] UUIDString];

NSString *deviceName = dev.name;

NSString *deviceModel = dev.model;

NSString *deviceSystemVersion = dev.systemVersion;

//Prepare the Device Token for Registration (remove spaces and < >)

NSString *deviceToken = [[[[devToken description] stringByReplacingOccurrencesOfString:@"<"withString:@""]                               stringByReplacingOccurrencesOfString:@">" withString:@""] stringByReplacingOccurrencesOfString: @" " withString: @""];

NSString *urlString = [@"/pushservice/apns/user/register"stringByAppendingString:@"r=user/register"];

 NSLog(@"devicetoken length: %i", [deviceToken length]);

urlString = [urlString stringByAppendingString:@"&appname="];

urlString = [urlString stringByAppendingString:appName];

urlString = [urlString stringByAppendingString:@"&appversion="];

urlString = [urlString stringByAppendingString:appVersion];

urlString = [urlString stringByAppendingString:@"&deviceuid="];

urlString = [urlString stringByAppendingString:deviceUuid];

urlString = [urlString stringByAppendingString:@"&devicetoken="];

urlString = [urlString stringByAppendingString:deviceToken];

urlString = [urlString stringByAppendingString:@"&devicename="];

urlString = [urlString stringByAppendingString:deviceName];

urlString = [urlString stringByAppendingString:@"&devicemodel="];

urlString = [urlString stringByAppendingString:deviceModel];

urlString = [urlString stringByAppendingString:@"&deviceversion="];

urlString = [urlString stringByAppendingString:deviceSystemVersion];

urlString = [urlString stringByAppendingString:@"&pushbadge="];

urlString = [urlString stringByAppendingString:pushBadge];

urlString = [urlString stringByAppendingString:@"&pushalert="];

urlString = [urlString stringByAppendingString:pushAlert];

urlString = [urlString stringByAppendingString:@"&pushsound="];

urlString = [urlString stringByAppendingString:pushSound];

NSUserDefaults *def=[NSUserDefaults standardUserDefaults];

[def setObject:deviceToken forKey:@"token"];

[def synchronize];
}
票数 0
EN

Stack Overflow用户

发布于 2014-11-04 12:47:57

使用以下代码:--

  • ( didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)应用程序:(UIApplication *)devToken { //self registerDeviceToken:devToken;//获取用于远程注册的捆绑信息(如果您有多个应用程序,方便使用) NSString *appName = [[NSBundle mainBundle infoDictionary] objectForKey:@"CFBundleDisplayName"];NSString *appVersion =[NSBundle mainBundle infoDictionary] objectForKey:@“CFBundleVersion”; //检查用户打开了哪些通知。我们注册了所有这三个,但他们可能已经手动禁用了其中的一部分或全部。// NSUInteger rntype= [UIApplication sharedApplication enabledRemoteNotificationTypes]; //将默认值设置为禁用,除非另有发现. NSString *pushBadge =@“禁用”;NSString *pushAlert =@“禁用”;NSString *pushSound声音=@“禁用”; 如果(rntype == UIRemoteNotificationTypeBadge){ pushBadge =@“已启用”;} pushBadge (rntype == UIRemoteNotificationTypeAlert){ pushAlert =@“已启用”;}if(rntype == UIRemoteNotificationTypeSound){ pushSound = @"enabled";}if(rntype == ( UIRemoteNotificationTypeBadge \x UIRemoteNotificationTypeAlert)){ pushBadge =@enabled;pushAlert = @"enabled";}否则if(rntype == (Rntypes UIRemoteNotificationTypeSound)){ pushAlert = @"enabled";pushSound = @"enabled";} else if(rntype == ( UIRemoteNotificationTypeBadge UIRemoteNotificationTypeAlert而兴UIRemoteNotificationTypeBadge UIRemoteNotificationTypeSound)){ pushBadge =@enabled;pushAlert =@enabled;pushSound =@“enabled”}; //获取用户设备模型、显示名称、唯一ID、令牌和版本号UIDevice *dev = UIDevice currentDevice;// NSString *deviceUuid=dev.uniqueIdentifier;NSString *deviceUuid = [dev identifierForVendor UUIDString];NSString *deviceName = dev.name;NSString *deviceModel = dev.model;NSString *deviceSystemVersion = dev.systemVersion; //准备设备令牌,用于注册(删除空格和< >) stringByReplacingOccurrencesOfString:@"<"withString:@""] *deviceToken =[devToken description stringByReplacingOccurrencesOfString: @“>”withString:@“] stringByReplacingOccurrencesOfString:@”withString:@“];NSString *urlString = @"/pushservice/apns/user/register"stringByAppendingString:@"r=user/register";NSLog(@”Device:%i",deviceToken length);urlString = urlString NSString:@“&appname=”;# urlString = urlString = urlString stringByAppendingString:appName;urlString = urlString stringByAppendingString:@"&appversion=";urlString = urlString stringByAppendingString:appVersion;urlString = urlString stringByAppendingString:@"&deviceuid=";urlString = urlString stringByAppendingString:deviceToken:deviceUuid;urlString = urlString stringByAppendingString:@@“&devicetoken=”;urlString = urlString urlString :deviceToken;&devicetoken== urlString stringByAppendingString:@@“#”;=#Appen21# stringByAppendingString:deviceName;#22#=#stringByAppendingString@ urlString #24#urlString = urlString stringByAppendingString:pushBadge;urlString = urlString stringByAppendingString:@"&pushalert=";urlString = urlString stringByAppendingString:pushAlert;urlString = urlString stringByAppendingString:@“&pushsound=”:@“&pushsound=”;urlString = urlString By弦ByAppendingString:Push人声;strGlobalDeviceToken=deviceToken;NSLog(@"deviceToken %“,strGlobalDeviceToken);NSUserDefaults NSLog;def setObject:deviceToken forKey:@"token"; 超级应用:应用程序didRegisterForRemoteNotificationsWithDeviceToken:devToken;

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26713810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档