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