iOS プッシュ メッセージは非常に便利な機能で、多くのアプリケーションがこの機能を備えており、リアルタイム アプリケーションのデータ フローの核となります。では、PHP を使用して iOS にプッシュ サービスを提供するにはどうすればよいでしょうか。次の記事で詳しく説明します。
ios メッセージ プッシュ メカニズムは、ios メッセージ プッシュ メカニズムを参照して実装および説明できます。
まず、pem 証明書が必要です。これは、開発中の署名に使用される証明書と一致している必要があります。 pem 証明書を生成する具体的な方法は次のとおりです:
1. iPhone 開発者接続ポータル (http://developer.apple.com/iphone/manage/overview/index.action) にログインし、[App IDs] をクリックします
2. Apple IDを作成します。ワイルドカード ID はプッシュ通知サービスでは使用できません。たとえば、com.itotem.iphone
3. Apple ID の横にある [設定] をクリックし、[ウィザード] の手順に従って署名のアップロードを生成し、生成されたライセンスをダウンロードします。
4. .cer ファイルをダブルクリックして、aps_developer_identity.cer をキーチェーンにインポートします。
5. Mac でキーチェーン アシスタントを起動し、ログイン キーチェーンで [証明書] カテゴリを選択します。拡張可能なオプション「Apple Development Push Services」を参照してください
6. このオプションを展開し、「Apple Development Push Services」を右クリックし、「Apple Development Push Services ID123」をエクスポートします。 apns-dev-cert.p12 ファイルとして保存します。
7. 「Apple Development Push Services」を展開し、「Private Key」に対しても同様の操作を行って、apns-dev-key.p12 ファイルとして保存します。
8. 端末コマンド openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12
を使用して、これらのファイルを PEM 形式に変換します。
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
9. 最後に、キー ファイルとライセンス ファイルを apns-dev.pem ファイルに結合する必要があります。これは APNS に接続するときに必要です:
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev-cert.pem
PHP コードは次のとおりです:
それでは、
ここで証明書が用意されています。次に、xcode で新しいテスト プロジェクトを作成します。設定したプロジェクトのバンドル識別子は、上記で構築した APP ID と同じである必要があることに注意してください。
DidFinishLaunchingWithOptions
- (BOOL)application:(UIApplication *)application DidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self.window makeKeyAndVisible];
[[UIApplicationsharedApplication] registerForRemoteNotificationTypes: UIRemoteNotificationTypeBadge UIRemoteNotificationTypeSound UIRemoteNotificationTypeAlert];
YES を返します;
}
- (void)application:(UIApplication *)application DidRegisterForRemoteNotificationsWithDeviceToken:(NSData *)pToken {
NSLog(@"regisger success:%@", pToken);
}
- (void)application:(UIApplication *)application DidReceiveRemoteNotification:(NSDictionary *)userInfo{
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"プッシュ通知" message:@"メッセージ" delegate:selfcancelButtonTitle:@"キャンセル" otherButtonTitles:nil, nil];
[アラートショー];
[アラート解除];
}
- (void)application:(UIApplication *)application DidFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
NSLog(@"登録失敗%@",エラー);
}次に http://localhost/push/push.php
にアクセスします。
iOS デバイスはプッシュ メッセージを受信しますマークを削除する別の方法は、viewDidApper に
を追加することです。
int バッジ = [UIApplicationsharedApplication].applicationIconBadgeNumber;
if(バッジ > 0)
{
バッジ--;
[UIApplicationsharedApplication].applicationIconBadgeNumber = バッジ;
}