【问题标题】:install app - push notification alertview callback安装应用程序 - 推送通知 alertview 回调
【发布时间】:2012-05-19 09:12:51
【问题描述】:

我正在开发一个使用推送通知的应用程序。

在方法中-

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

我打电话——

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
   (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound |UIRemoteNotificationTypeAlert)];

注册推送通知。一切正常。 但它也安装了我想显示一个alert view,它有一个UITextField,而不是需要“成为FirstResponder”。

问题是键盘与 enablePushNotofication alertview 的按钮重叠,用户无法关闭它。

无论如何,当 enablePushNotofication 警报视图被解除时,是否有一个方法被调用? (这样我就可以显示我的警报视图)

谢谢

【问题讨论】:

  • @Luke UIAlertView 是由系统触发的,您确定它会调用您自己的委托方法,而您的实例没有注册为委托吗? ...只是问,因为这对我来说似乎不太可能。
  • 启用推送通知警报视图是系统警报视图。调用它的类也将是它的委托?

标签: ios keyboard push-notification uialertview overlap


【解决方案1】:

每次启动应用时都应调用注册远程通知的代码。如果用户的令牌发生变化,您可以在您的服务器上更新它。

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
 (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound |UIRemoteNotificationTypeAlert)];

考虑到这一点,因为每次应用启动时都会调用它,您会知道它是成功还是失败。为您的文本字段添加代码,使其在已注册通知后成为第一响应者。

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error

【讨论】:

  • 如果用户没有通过文本字段解除警报,这仍然会发生。对吗?
  • 您需要在推送通知注册成功或失败后显示您的自定义警报。如果用户取消/允许 Push Notif 提示,它将调用其中一种方法,您可以显示自己的警报。
  • 如果通知注册成功(- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken is called),则显示“启用通知”警报视图。同样的问题。但是通过在用户使用文本字段解除警报后注册推送通知来解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-24
  • 2020-02-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2012-06-17
  • 1970-01-01
相关资源
最近更新 更多