Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to send push notification in ios from server using php in newer version of ios, without using pem file

i have sent notification in older versions of ios. but in newer version i m not able to create .pem file. Someone told me that pem file is no longer required to send notification from server. But with bad luck i am not able to find any link regarding this. Someone please guide me how to send push notifications from server in newer version of ios. I am stuck in sending notification since last week. Please help. Here is the code i am using

private function pushnotification($deviceToken, $message, $type, $badge, $userid, $jobid) {
    $passphrase = '123456';

    $ctx = stream_context_create();

   // $file = base_path().  "/public/WenderCastPush.pem";
    //stream_context_set_option($ctx, 'ssl', 'local_cert', $file);
    stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
    stream_context_set_option($ctx, 'ssl', 'verify_peer', false);
    stream_context_set_option($ctx, 'ssl', 'verify_peer_name', false);
    stream_context_set_option($ctx, 'ssl', 'allow_self_signed', true);
    //stream_context_set_option($ctx, 'ssl','ciphers', 'TLSv1');
    // Open a connection to the APNS server
   // $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT, $ctx);
    $fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT, $ctx);

    if (!$fp)
        exit("Failed to connect: $err $errstr" . PHP_EOL);

    $body['aps'] = array(
        //'badge' => +1,
        'alert' => $message,
        'sound' => 'default',
        //'title' => $message,
        'type' => $type, 
        'userid' => $userid ,
        'jobid' => $jobid, 
    );
    // Encode the payload as JSON
    $payload = json_encode($body);


    $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;

    // Send it to the server
    $result = fwrite($fp, $msg, strlen($msg));

    if (!$result)
        $responce = 'Message not delivered' . PHP_EOL;
    else
        $responce = 'Message successfully delivered' . PHP_EOL;

    // Close the connection to the server
    fclose($fp); 
    return $responce;
}
like image 315
gaurav malik Avatar asked Sep 28 '17 17:09

gaurav malik


People also ask

How do I make a PEM file Apple push notification?

Go to https://developer.apple.com and login to your Apple Developer Account. Select Certificates, Identifiers, Profiles. Select tab Production, then Click (+) Add to add a new Certificate. On Select Type page, select Apple Push Notification service SSL (Sanbox & Production).

How do I send push notifications to iOS?

First, you enable push notifications in the Xcode project. Select your project in the project navigator and click on the Capabilities tab. Enable push notifications by turning the switch ON. APNs will respond with a device token identifying your app instance.

Do PWA push notifications work in iOS?

Progressive Web Apps is a trend in 2019 and web push notifications for iOS are not supported right now.

How does push notifications work on the iOS platform?

An iOS push notification is a message that pops up on an Apple device such as an iPhone. Before receiving push notifications from an app, iOS device users must explicitly give permission. Once a user opts-in, mobile app publishers can send push notifications to the users' mobile devices.


2 Answers

You can send notification using Firebase.
Your iOS app should be compiled with Firebase.
and call following address using Post method

visit this link

It is not very difficult.

check this video.

like image 107
Younghwa Park Avatar answered Oct 21 '22 08:10

Younghwa Park


Send push notifications to iOS using the new APNs HTTP/2 protocol with token-based (JWT with p8 private key) or certificate-based authentication

You Can use This Package

and documentation of apple developers its useful

like image 27
Honarkhah Avatar answered Oct 21 '22 06:10

Honarkhah