2012-05-19 28 views
0

我正在開發一個應用程序的使用推送通知。安裝應用程序 - 推送通知alertview回調

在方法 -

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

我打電話 -

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

用於推送通知註冊。一切正常。 但它也安裝我想顯示alert view有一個UITextField比需要「becomeFirstResponder」。

問題是鍵盤與enablePushNotofication alertview的按鈕重疊,用戶無法解除它。

enter image description here

總之,有沒有當enablePushNotofication alertview被駁回時調用的方法? (這樣我就可以展示我alertview然後)

感謝

+0

@Luke UIAlertView由系統觸發,你確定它會調用你自己的委託方法,而你的實例沒有註冊爲委託嗎? ...只是問問,這對我來說似乎不太可能。 – Till

+0

啓用推送通知alertview是系統警報視圖。調用它的類也將是它的委託? – user1078065

回答

1

爲遠程註冊通知的代碼應該叫您每次應用程序啓動時間。萬一用戶的令牌改變了,所以你可以在你的服務器上更新它。

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

考慮到這一點,因爲每次啓動應用程序時都會調用此函數,您將知道它是成功還是失敗。在文本字段的代碼已經註冊通知後,將其放入第一個響應者。

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

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

如果用戶沒有關閉textfield的警報,這仍然會發生。對? – user1078065

+0

您將在推送通知註冊成功或失敗後顯示自定義提醒。如果用戶取消/允許Push Notif提示,它將調用其中一種方法,並且您可以顯示自己的提醒。 –

+0

如果通知註冊成功( - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken is called),將顯示「啓用通知」警報視圖。同樣的問題。但是,通過在用戶關閉帶有文本字段的警報後註冊推送通知來解決此問題。 – user1078065