notification notificaciones mail direct apple apns push-notification apple-push-notifications

push-notification - notificaciones - push notification ios firebase



iPhone 6 no recibe notificación de inserción (2)

¿Ha agregado el nuevo iPhone6 ​​a su Perfil de Aprovisionamiento de Desarrollo? Luego descarga e instala el perfil nuevamente. Esto lo resolvió para mí.

Estoy intentando enviar notificaciones automáticas a mi aplicación que se ejecuta en iOS 8.

Tengo dos dispositivos; uno es iPad 2 con iOS 8 y otro es iPhone 6+.

Exactamente la misma aplicación que se ejecuta en dos dispositivos y estoy usando el mismo script php para enviar notificaciones automáticas.

Estoy usando el siguiente código objetivo c para permitir la notificación de inserción.

if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)]) { UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; [[UIApplication sharedApplication] registerForRemoteNotifications]; } else { // iOS < 8 Notifications [application registerForRemoteNotificationTypes: (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)]; }

La siguiente es la secuencia de comandos php para enviar notificaciones push

function sendpush($deviceToken, $message, $test = false){ // Put your private key''s passphrase here: $passphrase = ''''; $pem = dirname(__FILE__) . ''/ck-pushtest.pem''; $ctx = stream_context_create(); stream_context_set_option($ctx, ''ssl'', ''local_cert'', $pem); stream_context_set_option($ctx, ''ssl'', ''passphrase'', $passphrase); $fp = stream_socket_client( $test ? ''ssl://gateway.sandbox.push.apple.com:2195'' : ''ssl://gateway.push.apple.com:2195'', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); if (!$fp) exit("Opening SSL Connection to Push Gateway Failed." . PHP_EOL); // Create the payload body $data[''aps''] = array( ''content-available'' => 1, ''alert'' => $message, ''sound'' => ''default'', ''badge'' => 1, ); $data[''push_type''] = ''link''; $data[''link''] = ''http://google.com''; $payload = json_encode($data); $msg = chr(0) . pack(''n'', 32) . pack(''H*'', $deviceToken) . pack(''n'', strlen($payload)) . $payload; $result = fwrite($fp, $msg, strlen($msg)); if ($result) echo ''******************Success********************''; else ''******************Failed*****************************''; // Close the connection to the server fclose($fp); } // Put your device token here (without spaces): $deviceToken = $_REQUEST[''deviceToken'']; $message = ''Hi, this is a test message!''; $test = 1; sendPush($deviceToken, $message, $test);

El problema es que la aplicación que se ejecuta en el iPad 2 (iOS 8) recibe notificación de inserción, pero el iPhone 6+ no.

¿Cuál sería el problema?

Cualquier consejo será apreciado.


No estoy seguro si esto podría ser, pero tuve problemas extraños al recibir notificaciones y luego leí lo siguiente de la documentación de Apple:

La propiedad de contenido disponible con un valor de 1 permite que la notificación remota actúe como una notificación silenciosa. Para una notificación silenciosa, asegúrese de que no haya carga de alerta, sonido o insignia en el diccionario aps.

Noté que tu diccionario aps tenía los 3 (sonido de alerta e insignia en él). Los documentos continuaron diciendo que Apple podría no entregar el mensaje si este es el caso.

Quitando los trabajados para mí.

Gracias Wayne