2016-08-02 22 views
3

プッシュ通知を送信すると、デバイス上で通知が表示されますが、iPhoneのロック画面または通知センターにバナーとして表示されません。 iPhoneにiOS 9がインストールされています。プッシュ通知が受信されたときに、バナーが表示されないバナーのみが振動する

以下は私のコードです。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
{ 
    registerForPushNotifications(application) 

    return true 
} 

func registerForPushNotifications(application: UIApplication) 
{ 

    let settings = UIUserNotificationSettings(forTypes: [.Sound, .Alert, .Badge], categories: nil) 

    UIApplication.sharedApplication().registerUserNotificationSettings(settings) 

    UIApplication.sharedApplication().registerForRemoteNotifications() 

} 

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) 
{ 
    print("DEVICE TOKEN = \(deviceToken)") 

    let tokenChars = UnsafePointer<CChar>(deviceToken.bytes) 
    var tokenString = "" 

    for i in 0..<deviceToken.length 
    { 
     tokenString += String(format: "%02.2hhx", arguments: [tokenChars[i]]) 
    } 

    print("tokenString: \(tokenString)") 
    strDeviceToken = tokenString 
} 

func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) 
{ 
    print("Error = \(error)") 
} 

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]){ 
     print(userInfo) 
    } 
+0

デバイスの設定から通知スタイルを確認しましたか? – Hasya

+0

はい私は小切手です。 –

+0

funcアプリケーションを追加(アプリケーション:UIApplication、 didReceiveRemoteNotification userInfo:[NSObject:AnyObject]、 fetchCompletionHandlerハンドラー:(UIBackgroundFetchResult) - > Void)メソッド、https://www.raywenderlich.com/123862/push-notifications-tutorialをチェックしてください。 – Hasya

答えて

0

ていることを確認し、あなたのアプリがバックグラウンドで動作している、またはを閉じ、それ以外の場合は通知メッセージを押して画面に表示されません。アプリがフォアグラウンドで実行されている場合、iOSはホーム画面または通知画面に表示せずに、プッシュ通知メッセージをホストアプリケーションに直接渡します。

あなたのアプリケーションが最前面にある場合は、UIKitのは、任意のシステムUI を表示せずにアプリのデリゲートオブジェクトに直接ローカルおよびリモート 通知を配信。 UIKitは、着信ローカル通知のために アプリケーション:didReceiveLocalNotification:メソッドを呼び出し、着信リモート通知の方法は、 アプリケーション:didReceiveRemoteNotification:fetchCompletionHandler: メソッドを呼び出します。提供された 通知辞書を使用して、アプリを適切に更新します。 アプリが実行されているため、通知データを静かに組み込むか、 ユーザーインターフェイスを更新し、新しい情報 が利用可能であることをユーザーに知らせることができます。

+0

アプリケーションが閉じます。私は通知を受けたが、画面のみのデバイスの警告表示は振動していない。 –

1

最後に私はこの問題を解決します。 iOSコードではないphpコードに関する問題PHPコードでは、彼らは紛失しているアラートapsのキーワードは、通知が受信されたときにデバイスだけが振動する理由を示しています。

+1

私は* body *のキーワードでした。それは存在しましたが、空文字列がありました。これは明らかにiOS 11では機能しますが、iOS 10では機能しません。 –

+0

@gebirgsbärbelこれはFirebaseクラウド機能のプッシュ送信でも当てはまります。 ios10の場合、 "body"を入れなければならず、それはnilでも ""でもないはずです。 ios11の場合は問題ありません。 – protspace

関連する問題