亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在前臺iOS中的App時獲取推送通知

在前臺iOS中的App時獲取推送通知

揚帆大魚 2019-08-15 17:03:27
在前臺iOS中的App時獲取推送通知我在我的應用程序中使用推送通知服務。當應用程序在后臺時,我能夠在通知屏幕上看到通知(當我們從iOS設備的頂部向下滑動時顯示的屏幕)。但是如果應用程序在前臺是委托方法- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo正在調用,但通知屏幕中不顯示通知。我想在通知屏幕上顯示通知,無論應用程序是在后臺還是前臺。我厭倦了尋找解決方案。任何幫助是極大的贊賞。
查看完整描述

3 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

要在應用程序位于前臺時顯示橫幅消息,請使用以下方法。

iOS 10,Swift 3/4

// This method will be called when app received push notifications in foregroundfunc userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    completionHandler([.alert, .badge, .sound])}

iOS 10,Swift 2.3

@available(iOS 10.0, *)func userNotificationCenter(center: UNUserNotificationCenter, willPresentNotification notification: UNNotification, withCompletionHandler completionHandler: (UNNotificationPresentationOptions) -> Void){
    //Handle the notification
    completionHandler(
       [UNNotificationPresentationOptions.Alert,
        UNNotificationPresentationOptions.Sound,
        UNNotificationPresentationOptions.Badge])}

您還必須將您的應用代表注冊為通知中心的代表:

import UserNotifications// snip!class AppDelegate : UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate// snip!

   func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

      // set the delegate in didFinishLaunchingWithOptions
      UNUserNotificationCenter.current().delegate = self      ...
   }


查看完整回答
反對 回復 2019-08-15
?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

下面的代碼將適合您:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo  {
    application.applicationIconBadgeNumber = 0;             
    //self.textView.text = [userInfo description];
    // We can determine whether an application is launched as a result of the user tapping the action
    // button or whether the notification was delivered to the already-running application by examining
    // the application state.

    if (application.applicationState == UIApplicationStateActive) {                
        // Nothing to do if applicationState is Inactive, the iOS already displayed an alert view.                
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Did receive a Remote Notification" message:[NSString stringWithFormat:@"Your App name received this notification while it was running:\n%@",[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]]delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alertView show];          
    }    }


查看完整回答
反對 回復 2019-08-15
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

對于任何可能感興趣的人,我最終創建了一個自定義視圖,看起來像頂部的系統推送橫幅,但添加了一個關閉按鈕(小藍色X)和一個選項來點擊消息進行自定義操作。它還支持在用戶有時間讀取/解除舊通知之前到達多個通知的情況(沒有限制可以堆積多少...)

鏈接到GitHub:AGPushNote

用法基本上是在線:

[AGPushNoteView showWithNotificationMessage:@"John Doe sent you a message!"];

它在iOS7上看起來像這樣(iOS6具有iOS6的外觀和感覺......)


查看完整回答
反對 回復 2019-08-15
  • 3 回答
  • 0 關注
  • 1421 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號