使用Enterprise分发

时间:2016-05-24 11:53:05

标签: ios apple-push-notifications enterprise

我为一家公司创建了应用程序,他们希望通过Enterprise为员工分发这些公司。当他们使用iOS 9版手机执行此操作时,它就像魅力一样,但对于iOS 8,它们永远不会被提示“允许推送通知”,因此应用程序将永远不会收到任何内容。我查看了手机设置中的通知,默认情况下它已开启。

我尝试将其设置为禁用,确保应用已终止,然后将其添加回启用并启动应用。我已经尝试删除应用程序,重新安装它,重新启动并再次尝试所有步骤,但它无法正常工作。

有人有任何想法吗?

修改

我现在得到了提示。我仍然没有得到任何通知...我有两个设备与iOS 8,没有一个收到通知,我有两个设备> iOS 9和他们都收到通知。

2 个答案:

答案 0 :(得分:1)

如果您真的想看到通知提醒, 来自Apple Doc [https://developer.apple.com/library/ios/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG42],它说,

推送启动应用首次注册推送通知时,iOS会询问用户是否希望接收该应用的通知。一旦用户响应此警报,除非设备已恢复或应用程序已卸载至少一天,否则不会再次显示该警报。

但如果你想立即检查,只需做几件事

  1. 从设备中删除您的应用。
  2. 完全关闭设备并重新打开。
  3. 转到设置>一般>日期&时间并将日期设定为一天或更长时间。
  4. 再次完全关闭设备并重新打开。
  5. 但是,通过这样做,您将收到接收接收通知的提醒。

    根据您的说法,由于默认情况下启用了推送通知(或之前已接受),您应该会收到通知。

    请发表评论。

答案 1 :(得分:0)

你必须像这样设置

UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:
                                        (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound)
                                                                         categories:categories];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];

检查用户是否允许系统设置的本地通知

/**
 *  check if user allow local notification of system setting
 *
 *  @return YES-allowed,otherwise,NO.
 */
+ (BOOL)isAllowedNotification {
    //iOS8 check if user allow notification
    if ([UIDevice isSystemVersioniOS8]) {// system is iOS8
        UIUserNotificationSettings *setting = [[UIApplication sharedApplication] currentUserNotificationSettings];
        if (UIUserNotificationTypeNone != setting.types) {
            return YES;
        }
    } else {//iOS7
        UIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
        if(UIRemoteNotificationTypeNone != type)
            return YES;
    }

    return NO;
}