iPhoneにPHP版Pushサーバーを設定する例
iPhone上にPHP版Pushサーバーを構築する操作例がこの記事で紹介する内容です。アプリケーションにプッシュ機能を追加すると、ユーザーがタイムリーに情報を取得するのに非常に役立ちます。iPhone のプッシュ (プッシュ通知) 機能の原理については、以前に簡単に説明しました。アプリの場合、開発者は最初にプッシュ サーバーを構築する必要があります。以下は、iPhone アプリケーション用の PHP プッシュ サーバーを構築するプロセスの紹介です。
0. Mac OS に XCode をインストールします。ポータルで APP ID とデバイスを確立します。
2. Keychain Access.app CertificateSigningRequest.certSigningRequest で証明書リクエストを生成します (メニュー>キーチェーン アクセス> ; 証明書アシスタント > 認証局に証明書を要求します。).
3. iPhone プロビジョニング ポータルで証明書を要求し、CertificateSigningRequest.certSigningRequest をクリックします。
4. リクエストが完了したら、証明書ファイル (developer_identity .cer) をダウンロードし、ダブルクリックしてキー チェーンにインポートします。
5. iPhone プロビジョニング ポータルで新しいプロファイルを作成します。 、指定した APP ID と生成するデバイスを選択します。
6 . *_profile.mobileprovision として生成されたプロファイルをダウンロードし、ファイルをダブルクリックしてプロファイルを iPhone にロードします。
Push通知サービスの設定
7. [iPhone プロビジョニング ポータル] > [アプリ ID] で、プッシュ サービスを必要とするアプリ ID を選択し、[設定] を入力します。
8. Apple プッシュ通知サービスを有効にすることを確認し、開発を設定します。 SSL 証明書をプッシュし、手順 2 で生成した証明書リクエストをアップロードします。
9. 生成された aps_developer_identity.cer をダウンロードし、プッシュ サービスの構成を完了します。
10. aps_developer_identity.cer をダブルクリックし、それをキーチェーンに保存します。
php プッシュ通知送信者に必要な証明書ファイルを生成します
11. Keychain Access.app でこの新しい証明書 (Apple Development Push Services*) を選択し、エクスポートします。これをデスクトップに保存し、
12. 次のコマンドを実行します:
openssl pkcs12 -clcerts -nokeys -out cert.pem -in Certificates.p12
openssl pkcs12 -nocerts -out key.pem -in Certificates.p12
openssl rsa -in key.pem -out key.unencrypted.pem
cat cert.pem key.unencrypted.pem > php プッシュ通知送信者に必要なデバイス トークン:
13. $PROJECT_NAMEAppDelegate に新しいビューベースのアプリケーション プロジェクトを作成します。m:
a. 次のコードを貼り付けます。 void)applicationDidFinishLaunching:(UIApplication *)app {
// その他のセットアップ タスクはこちら….
[window addSubview:viewController. view];
[self alter Notice:@"" withMSG:@"リモート通知を開始していますアクティブです"
cancleButtonTitle:@"Ok" otherButtonTitle:@""];
[[UIApplicationsharedApplication] registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound )];
}
- (void)application:(UIApplication *)app
didRegisterForRemoteNotificationsWithDeviceToken:( NSData *)deviceToken {
//NSLog(@"devToken=%@", deviceToken); 🎜>
cancleButtonTitle:@"Ok" otherButtonTitle:@""];
}
- (void)application:(UIApplication *)app
didFailToRegisterForRemoteNotificationsWithError:(NSError * )err {
NSLog(@"登録エラー。エラー: %@", err);
[self warning Notice:@"" withMSG:[NSString stringWithFormat:@"登録エラー。
エラー:
*)cancleTitle otherButtonTitle:(NSString *)otherTitle{
UIAlertView *alert;
if([otherTitle isEqualToString:@""])
アラート = [ [UIAlertView alloc] initWithTitle:title message:msg delegate:self
cancelButtonTitle:cancleTitle otherButtonTitles:nil,nil];
else
alter = [[UIAlertView alloc] initWithTitle:title message:msg delegate:self
cancelButtonTitle:cancleTitle otherButtonTitles:otherTitle,nil];
[alert show];
[警報解除];
}
b.在 - (BOOL)application:(UIApplication *)application DidFinishLaunchingWithOptions:(NSDictionary *)launchOptions { メソッド中增加
[selfalert Notice:@"" withMSG:@"リモートの開始通知がアクティブです" cancleButtonTitle:@"Ok" otherButtonTitle:@""];
[[UIApplicationsharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound)];
14.项目设置
a.ターゲット > $APP_NAME >コンテキストメニュー >プロパティ >識別子
修正
識別子
である
アプリ ID
b. ターゲット > $APP_NAME >コンテキストメニュー >ビルド >コードサイニング >コード署名識別子 >任意の iPhone OS デバイス
は iPhone 開発者を开公開用机,编译并运行後会在iPhone 上显示设备令牌
php プッシュ通知送信者代码如下:
deviceToken = "设备令牌";
$body = array("aps" => array
("alert" => 'message', "badge" => 1, "sound " => 'received5.caf'));
$ctx = stream_context_create();
stream_context_set_option($ctx, "ssl", "local_cert", "ck.pem");
$fp = stream_socket_client
("ssl://gateway.sandbox.push.apple.com:2195", $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp) {
print "$err $errstrn の接続に失敗しました";
return;
}
print "接続 OKn";
payload = json_encode($ body);
$msg = chr(0) 。パック("n",32) 。 Pack("H*", $deviceToken) 。 Pack("n",strlen($payload)) 。 $ペイロード;
rint "メッセージ送信中:" 。 $ペイロード 。 "n";
fwrite($fp, $msg); fclose($fp);
?>
iPhone ログイン PHP 版 Push サービス务器 实例操作のコンテンツ介绍完了