Cordova如何在iOS上移除“推送通知”

13

我使用Apache Cordova将我的应用提交到苹果商店,结果收到了苹果的一个警告:“缺少推送通知权限”。

但是我似乎从未在我的应用中使用过“推送通知”。我该如何从我的应用程序中删除它?它是否是Apache Cordova的默认设置?


1
请列出您正在使用的插件和Cordova版本。 - Ahmed Daif
5个回答

19

如何正确地为Cordova应用程序执行此操作:

我也遇到了这个问题。 @michaelb提出的解决方案有效,但我感到非常沮丧,因为整个代码都包含在条件编译中(即#ifndef DISABLE_PUSH_NOTIFICATIONS),所以我决定学习如何添加“预处理器宏”,这基本上告诉XCode使用此代码段对您的应用程序进行编译。

以下是通过UI以图形方式定义DISABLE_PUSH_NOTIFICATIONS预编译符号的方法(请注意,这是在XCode 6.1中完成的):

输入图片描述

希望这能帮助其他处于同样情况的人。


5

根据上面和其他地方的建议,这是我在Cordova 5.0.0中所做的:

结果警告消失了,我也没有注意到应用程序出现任何问题。

  1. 打开platforms/ios/InfoganGardenAdmin/Classes/AppDelegate.m
  2. 注释掉第116到137行

例如:

/* - Removed to disable push notification and Apple warning message
#ifndef DISABLE_PUSH_NOTIFICATIONS

    - (void)                                 application:(UIApplication*)application
        didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
    {
        // re-post ( broadcast )
        NSString* token = [[[[deviceToken description]
            stringByReplacingOccurrencesOfString:@"<" withString:@""]
            stringByReplacingOccurrencesOfString:@">" withString:@""]
            stringByReplacingOccurrencesOfString:@" " withString:@""];

        [[NSNotificationCenter defaultCenter] postNotificationName:CDVRemoteNotification object:token];
    }

    - (void)                                 application:(UIApplication*)application
        didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
    {
        // re-post ( broadcast )
        [[NSNotificationCenter defaultCenter] postNotificationName:CDVRemoteNotificationError object:error];
    }
#endif
*/

你确定已经定义了 DISABLE_PUSH_NOTIFICATIONS 吗?它应该会产生相同的效果... 奇怪的是,它在我的构建中是被定义了,但我仍然收到警告。 - Michael
1
我尝试设置了这个标志,但它没有起作用。我不是专家,所以可能做得不好。 - michaelbn

5

在AppDelegate.m中移除didRegisterForRemoteNotificationsWithDeviceToken和didFailToRegisterForRemoteNotificationsWithError。这是在处理PhoneGap 3.5的问题。


2

很可能是你使用的版本有问题,PhoneGap 3.5也存在同样的问题(PhoneGap是基于Cordova构建的),你可以在这里查看讨论线程。

目前的解决方案似乎是"使用旧版本"


-1

这封电子邮件非常模糊,可以有多种解释方式。如果您是一名新开发人员,可能不知道苹果商店应用程序审核的等待时间。请参见AppReviewTimes

澄清一下:这只是一个警告,如果您不使用推送通知,可以忽略它。

不要试图修复没有问题的东西。而且我能找到的所有解决方案都不起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接