当前位置: 首页 > 工具软件 > Apns-PHP > 使用案例 >

apns-php

东方辉
2023-12-01


sample_push.php

<?php /** * @file * sample_push.php * * Push demo * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://code.google.com/p/apns-php/wiki/License * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to aldo.armiento@gmail.com so we can send you a copy immediately. * * @author (C) 2010 Aldo Armiento (aldo.armiento@gmail.com) * @version $Id$ */ // Adjust to your timezone date_default_timezone_set('Europe/Rome'); // Report all PHP errors error_reporting(-1); // Using Autoload all classes are loaded on-demand require_once 'ApnsPHP/Autoload.php'; // Instanciate a new ApnsPHP_Push object $push = new ApnsPHP_Push( ApnsPHP_Abstract::ENVIRONMENT_SANDBOX, 'server_certificates_bundle_sandbox.pem' ); // Set the Root Certificate Autority to verify the Apple remote peer $push->setRootCertificationAuthority('entrust_root_certification_authority.pem'); // Connect to the Apple Push Notification Service $push->connect(); // Instantiate a new Message with a single recipient $message = new ApnsPHP_Message('1e82db91c7ceddd72bf33d74ae052ac9c84a065b35148ac401388843106a7485'); // Set a custom identifier. To get back this identifier use the getCustomIdentifier() method // over a ApnsPHP_Message object retrieved with the getErrors() message. $message->setCustomIdentifier("Message-Badge-3"); // Set badge icon to "3" $message->setBadge(3); // Set a simple welcome text $message->setText('Hello APNs-enabled device!'); // Play the default sound $message->setSound(); // Set a custom property $message->setCustomProperty('acme2', array('bang', 'whiz')); // Set another custom property $message->setCustomProperty('acme3', array('bing', 'bong')); // Set the expiry value to 30 seconds $message->setExpiry(30); // Add the message to the message queue $push->add($message); // Send all messages in the message queue $push->send(); // Disconnect from the Apple Push Notification Service $push->disconnect(); // Examine the error message container $aErrorQueue = $push->getErrors(); if (!empty($aErrorQueue)) { var_dump($aErrorQueue); }

 

sample_feedback.php

<?php
/**
 * @file
 * sample_feedback.php
 *
 * Feedback demo
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://code.google.com/p/apns-php/wiki/License
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to aldo.armiento@gmail.com so we can send you a copy immediately.
 *
 * @author (C) 2010 Aldo Armiento (aldo.armiento@gmail.com)
 * @version $Id$
 */

// Adjust to your timezone
date_default_timezone_set('Europe/Rome');

// Report all PHP errors
error_reporting(-1);

// Using Autoload all classes are loaded on-demand
require_once 'ApnsPHP/Autoload.php';

// Instanciate a new ApnsPHP_Feedback object
$feedback = new ApnsPHP_Feedback(
        ApnsPHP_Abstract::ENVIRONMENT_SANDBOX,
        'server_certificates_bundle_sandbox.pem'
);

// Connect to the Apple Push Notification Feedback Service
$feedback->connect();

$aDeviceTokens = $feedback->receive();
if (!empty($aDeviceTokens)) {
        var_dump($aDeviceTokens);
}

// Disconnect from the Apple Push Notification Feedback Service
$feedback->disconnect();

 

sample_server.php

<?php
/**
 * @file
 * sample_server.php
 *
 * Push server demo
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://code.google.com/p/apns-php/wiki/License
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to aldo.armiento@gmail.com so we can send you a copy immediately.
 *
 * @author (C) 2010 Aldo Armiento (aldo.armiento@gmail.com)
 * @version $Id$
 */

// Adjust to your timezone
date_default_timezone_set('Europe/Rome');

// Report all PHP errors
error_reporting(-1);

// Using Autoload all classes are loaded on-demand
require_once 'ApnsPHP/Autoload.php';

// Instanciate a new ApnsPHP_Push object
$server = new ApnsPHP_Push_Server(
        ApnsPHP_Abstract::ENVIRONMENT_SANDBOX,
        'server_certificates_bundle_sandbox.pem'
);

// Set the Root Certificate Autority to verify the Apple remote peer
$server->setRootCertificationAuthority('entrust_root_certification_authority.pem');

// Set the number of concurrent processes
$server->setProcesses(2);

// Starts the server forking the new processes
$server->start();

// Main loop...
$i = 1;
while ($server->run()) {

        // Check the error queue
        $aErrorQueue = $server->getErrors();
        if (!empty($aErrorQueue)) {
                // Do somethings with this error messages...
                var_dump($aErrorQueue);
        }

        // Send 10 messages
        if ($i <= 10) {
                // Instantiate a new Message with a single recipient
                $message = new ApnsPHP_Message('1e82db91c7ceddd72bf33d74ae052ac9c84a065b35148ac401388843106a7485');

                // Set badge icon to "i"
                $message->setBadge($i);

                // Add the message to the message queue
                $server->add($message);

                $i++;
        }

        // Sleep a little...
        usleep(200000);
}

 

Introduction

To send Push Notifications to a device, you need a device token. Device token is generated by Apple from Device ID and Application ID, so this is unique per device and per application.

Deprecated

Please, see the Objective-C Demo Project at http://code.google.com/p/apns-php/source/browse/trunk/Objective-C%20Demo

Code

/**
 * @file
 * Application delegate implementation.
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://code.google.com/p/apns-php/wiki/License
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to aldo.armiento@gmail.com so we can send you a copy immediately.
 * 
 * @version $Id$
 */

#import "AppDelegate.h"

@implementation AppDelegate

@synthesize window;

#pragma mark -
#pragma mark Application delegate

- (void)applicationDidFinishLaunching:(UIApplication *)application {
  [window makeKeyAndVisible];
  
  #if !TARGET_IPHONE_SIMULATOR
  [application registerForRemoteNotificationTypes:
   UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound];
  #endif
}

#pragma mark -
#pragma mark Remote notifications

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
  // You can send here, for example, an asynchronous HTTP request to your web-server to store this deviceToken remotely.
  NSLog(@"Did register for remote notifications: %@", deviceToken);
}

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
  NSLog(@"Fail to register for remote notifications: %@", error);
}

#pragma mark -
#pragma mark Memory management

/**
 * Deallocates the memory occupied.
 */
- (void)dealloc {
  [window release];
  [super dealloc];
}

@end

 

 类似资料: