ホームページ  >  記事  >  バックエンド開発  >  iPhone用PHP版Pushサーバー構築準備 動作例

iPhone用PHP版Pushサーバー構築準備 動作例

WBOY
WBOYオリジナル
2016-06-13 13:12:57775ブラウズ

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 サービス务器 实例操作のコンテンツ介绍完了

1楼 CJセン 2011-12-15  
请问iphone プッシュ送信中、私が同じ条情報を複数のデバイスに送信する場合、インターフェイスや方法はありません。自我帮我は服务器上にある「一台の機器ID追加一条情報」一台の公開;
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。