我已經在我的應用程序中集成了推送通知。我在AppDelegate
中獲取設備令牌並將其發送到我的LoginViewController
中的服務器。如果用戶點擊「不允許」時警報來了,我不打電話給我的設備註冊服務。但我不知道如何處理這種情況。如何處理推送通知允許從iOS中的設置
如果用戶點擊不推送通知警報允許去裏面的應用程序,然後打開他的設備設置並啓用推送通知。
在這種情況下,我該如何撥打我的設備註冊服務? 請幫我 感謝
我已經在我的應用程序中集成了推送通知。我在AppDelegate
中獲取設備令牌並將其發送到我的LoginViewController
中的服務器。如果用戶點擊「不允許」時警報來了,我不打電話給我的設備註冊服務。但我不知道如何處理這種情況。如何處理推送通知允許從iOS中的設置
如果用戶點擊不推送通知警報允許去裏面的應用程序,然後打開他的設備設置並啓用推送通知。
在這種情況下,我該如何撥打我的設備註冊服務? 請幫我 感謝
在AppDelegate中
如果用戶允許的通知,該令牌將在FUNC波紋管返回,你會打電話給你的服務,發送到您的服務器
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
}
如果用戶唐「T允許通知,您將在FUNC收到錯誤波紋管
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
}
是我在我提到的場景中提出的問題..然後如何獲得通知,並關閉並重新打開應用程序,因爲我沒有收到我的服務設備註冊服務,因爲用戶didnt允許當它提示 – user1960169
當您打開應用程序,你在真實的設備FUNC didRegisterForRemoteNotificationsWithDeviceToken送花兒給人reviece令牌, 您將發送令牌到你的服務器, 當你發送通知給用戶,設備車展的通知,如果用戶允許notificaion和意志不顯示,如果用戶不通知 –
其實沒有delega請注意,用戶更改了推送通知的狀態。
但是可以通過使用這種方法在applicationDidBecomeActive:
方法檢查這樣
目標C:
的iOS 8及以上
if (![[UIApplication sharedApplication] isRegisteredForRemoteNotifications]){
NSLog(@"push notifications are disabled");
}
對於iOS 10
UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
if (types == UIRemoteNotificationTypeNone) {
NSLog(@"push notifications are disabled");
}
夫特:
的iOS 8及以上
let isRegisteredForRemoteNotifications = UIApplication.shared.isRegisteredForRemoteNotifications
if isRegisteredForRemoteNotifications {
NSLog(@"push notifications are enabled");
} else {
NSLog(@"push notifications are disabled");
}
對於iOS 10
let current = UNUserNotificationCenter.current()
current.getNotificationSettings(completionHandler: { (settings) in
if settings.authorizationStatus == .denied {
NSLog(@"push notifications are disabled");
}
})
希望它能幫助。
注
在設置的任何更改重新啓動應用程序。 so如果用戶打開來自設置的通知,則應用程序將重新啓動,您將在app-delegate中獲取設備令牌,並且可以將其發送到您的服務器。如果您的登錄名保存在本地,並且您在登錄api中發送device_token,則需要使用單獨的服務將device_token發送到服務器。
但是,當我打開應用程序,並更改設置仍然在後臺運行。似乎不重新啓動 – user1960169
設備註冊方法將在您每次註冊應用程序進行通知時被調用。因此,設置更改後,當您再次啓動應用程序並註冊接收通知時,該方法將被調用。 – lostInTransit
@lostInTransit謝謝。如果用戶改變設置並重新打開應用程序,當它從後臺到前臺時,那麼它也可以註冊? – user1960169
你將不得不確保你調用'registerForRemoteNotifications'方法 – lostInTransit