[Swift] Push Notification
<?php | |
$deviceToken = '************'; | |
// 送信する文字列 | |
$alert = 'Push test.'; | |
// バッジ | |
$badge = 1; | |
$body = array(); | |
$body['aps'] = array( 'alert' => $alert ); | |
$body['aps']['badge'] = $badge; | |
// SSL証明書 | |
$cert = '********.pem'; | |
$url = 'ssl://gateway.sandbox.push.apple.com:2195'; // 開発用 | |
//$url = 'ssl://gateway.push.apple.com:2195'; // 本番用 | |
$context = stream_context_create(); | |
stream_context_set_option( $context, 'ssl', 'local_cert', $cert ); | |
$fp = stream_socket_client( $url, $err, $errstr, 60, STREAM_CLIENT_CONNECT, $context ); | |
if( !$fp ) { | |
echo 'Failed to connect.' . PHP_EOL; | |
exit( 1 ); | |
} | |
$payload = json_encode( $body ); | |
$message = chr( 0 ) . pack( 'n', 32 ) . pack( 'H*', $deviceToken ) . pack( 'n', strlen($payload ) ) . $payload; | |
print 'send message:' . $payload . PHP_EOL; | |
fwrite( $fp, $message ); | |
fclose( $fp ); |
// | |
// AppDelegate.swift | |
// pushtest | |
// | |
// Created by sawapi on 2014/06/08. | |
// Copyright (c) 2014年 sawapi. All rights reserved. | |
// | |
// iOS8用 | |
import UIKit | |
@UIApplicationMain | |
class AppDelegate: UIResponder, UIApplicationDelegate { | |
var window: UIWindow? | |
func application( application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary? ) -> Bool { | |
// Push通知を許可する | |
var types: UIUserNotificationType = UIUserNotificationType.Badge | | |
UIUserNotificationType.Alert | | |
UIUserNotificationType.Sound | |
var settings: UIUserNotificationSettings = UIUserNotificationSettings( forTypes: types, categories: nil ) | |
application.registerUserNotificationSettings( settings ) | |
application.registerForRemoteNotifications() | |
return true | |
} | |
// デバイストークンを取得する | |
func application( application: UIApplication!, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData! ) { | |
// <>と" "(空白)を取る | |
var characterSet: NSCharacterSet = NSCharacterSet( charactersInString: "<>" ) | |
var deviceTokenString: String = ( deviceToken.description as NSString ) | |
.stringByTrimmingCharactersInSet( characterSet ) | |
.stringByReplacingOccurrencesOfString( " ", withString: "" ) as String | |
println( deviceTokenString ) | |
} | |
// デバイストークンの取得に失敗した場合 | |
func application( application: UIApplication!, didFailToRegisterForRemoteNotificationsWithError error: NSError! ) { | |
println( error.localizedDescription ) | |
} | |
func applicationWillResignActive( application: UIApplication ) { | |
} | |
func applicationDidEnterBackground( application: UIApplication ) { | |
} | |
func applicationWillEnterForeground( application: UIApplication ) { | |
} | |
func applicationDidBecomeActive( application: UIApplication ) { | |
} | |
func applicationWillTerminate( application: UIApplication ) { | |
} | |
} | |
// | |
// AppDelegate.swift | |
// pushtest | |
// | |
// Created by sawapi on 2014/06/08. | |
// Copyright (c) 2014年 sawapi. All rights reserved. | |
// | |
// iOS7以下 | |
import UIKit | |
@UIApplicationMain | |
class AppDelegate: UIResponder, UIApplicationDelegate { | |
var window: UIWindow? | |
func application( application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary? ) -> Bool { | |
application.registerForRemoteNotificationTypes( UIRemoteNotificationType.Badge | | |
UIRemoteNotificationType.Sound | | |
UIRemoteNotificationType.Alert ) | |
return true | |
} | |
// デバイストークンを取得する | |
func application( application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData ) { | |
// <>と" "(空白)を取る | |
var characterSet: NSCharacterSet = NSCharacterSet( charactersInString: "<>" ) | |
var deviceTokenString: String = ( deviceToken.description as NSString ) | |
.stringByTrimmingCharactersInSet( characterSet ) | |
.stringByReplacingOccurrencesOfString( " ", withString: "" ) as String | |
println( deviceTokenString ) | |
} | |
func applicationWillResignActive( application: UIApplication ) { | |
} | |
func applicationDidEnterBackground( application: UIApplication ) { | |
} | |
func applicationWillEnterForeground( application: UIApplication ) { | |
} | |
func applicationDidBecomeActive( application: UIApplication ) { | |
} | |
func applicationWillTerminate( application: UIApplication ) { | |
} | |
} |
This comment has been minimized.
This comment has been minimized.
I believe this is the method you are looking for |
This comment has been minimized.
This comment has been minimized.
Where can i download the whole project ? as my referal, link please .Thank you |
This comment has been minimized.
This comment has been minimized.
does not support anymore.
instead |
This comment has been minimized.
This comment has been minimized.
For iOS < 10 you can use this code.
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Can you please explain where you have received json data that has sent by Server.