Java 代码名1本地通知在ios上不起作用

Java 代码名1本地通知在ios上不起作用,java,ios,notifications,codenameone,Java,Ios,Notifications,Codenameone,我已经添加了一个本地通知,所以当我的应用程序在打开时得到推送时,仍然会出现弹出窗口和声音。 它在Android上运行良好,但在iOS上根本不会出现本地通知 推送通知在两种平台上都可以正常工作 这是我在推送回调中的代码,应该触发通知(如果应用程序已打开): 您是否调用了registerUserNotificationSettings来注册您的应用程序使用本地通知的事实?如果不这样做,您发布本地通知的请求将被忽略 请参见该方法说明中的以下文字: 如果您的应用程序显示警报、播放声音或标记其图标,您必须

我已经添加了一个本地通知,所以当我的应用程序在打开时得到推送时,仍然会出现弹出窗口和声音。 它在Android上运行良好,但在iOS上根本不会出现本地通知

推送通知在两种平台上都可以正常工作

这是我在推送回调中的代码,应该触发通知(如果应用程序已打开):


您是否调用了
registerUserNotificationSettings
来注册您的应用程序使用本地通知的事实?如果不这样做,您发布本地通知的请求将被忽略

请参见该方法说明中的以下文字:

如果您的应用程序显示警报、播放声音或标记其图标,您必须 在启动周期内调用此方法以请求对 以这些方式提醒用户。(如果您需要,您也必须提出此请求。) 要直接设置applicationBadgeNumber属性。) 通常,如果您的应用程序使用本地或远程,您会发出此请求 通知,提醒用户有关应用程序的新信息。 应用程序首次启动并调用此方法时,系统 询问用户是否应允许您的应用程序交付 通知并存储响应。此后,系统使用 存储响应,以确定您可能需要的通知的实际类型 使用

调用此方法后,应用程序将调用 应用程序:didRegisterUserNotificationSettings:其应用程序的方法 委托他人报告结果。您可以使用该方法来确定 如果用户批准或拒绝了您的请求

建议在计划任何操作之前调用此方法 本地通知或向推送通知服务注册。 使用新的用户设置对象调用此方法将替换 以前的设置请求。支持自定义操作的应用程序必须 在notificationSettings中包括所有受支持的操作 反对


您需要在AppDelegate.m文件的didFinishLaunchingWithOptions方法中添加以下代码以注册本地通知

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
        if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)])
        {
            [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
            [[UIApplication sharedApplication] registerForRemoteNotifications];
        }
        else
        {
            [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
             (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
        }
}
将此代码放在视图控制器中

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification:) name:@"DriverNotification" object:nil
 ]; 

当应用程序在前台打开时,不会触发本地通知。在应用程序运行时,您应该使用不同的机制发出声音。例如Display.vibrate()

使用Codename One,您通常无法直接访问本机平台代码(这是一个跨平台的框架)。抱歉,我错过了您问题的这一部分。我不知道如何从Codename One正确设置本地通知。我建议谷歌搜索“Codename One registerUserNotificationSettings”,看看是否有解决方案。好的,我会用它和祝酒词来显示消息,谢谢!
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{

[[NSNotificationCenter defaultCenter] postNotificationName:@"DriverNotification" object:nil userInfo:userInfo];
//    [[NSNotificationCenter defaultCenter] postNotificationName:@"UserNotification" object:nil userInfo:userInfo];
       NSLog(@"%@",userInfo);
}
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification:) name:@"DriverNotification" object:nil
 ];