5

iOS用のアプリがあり、そこにプッシュ通知を統合したいと思います。YouTubeでチュートリアルを見たことがあり、すべて問題ありませんが、最近、開発証明書を使用しており(テスト用、AppStore用ではありません)、サーバーにPHPスクリプトがあります。このファイルには、私のiPhoneを持っているdeviceTokenが格納されており、php変数$deviceTokenで書き込まれます。しかし今、これをAppStoreで使用したい場合、アプリをダウンロードしたすべての人からデバイストークンを取得して、PHPスクリプトに取り込むにはどうすればよいですか?

これは私のPHPファイルです:

 if($_POST['message']){

        $deviceToken = '(my device token)';

        $message = stripslashes($_POST['message']);

        $payload = '{
                        "aps" : 

                            { "alert" : "'.$message.'",
                              "badge" : 1,
                              "sound" : "bingbong.aiff"
                            } 
                    }';

        $ctx = stream_context_create();
        stream_context_set_option($ctx, 'ssl', 'local_cert', 'cert.pem');
        stream_context_set_option($ctx, 'ssl', 'passphrase', 'password');
        $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
        if(!$fp){
            print "Failed to connect $err $errstrn";
            return;
        } else {
            print "DONE!";
        }

        $devArray = array();
        $devArray[] = $deviceToken;

        foreach($devArray as $deviceToken){
            $msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack        ("n",strlen($payload)) . $payload;
            fwrite($fp, $msg);
        }
        fclose($fp);
    }

<form action="send-notification.php" method="post">
    <input type="text" name="message" maxlength="100">
    <input type="submit" value="SEND">
</form>
</body>

これは私がxCode(AppDelegate.m)に持っているものです

   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];

    return YES;
}

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    NSString *deviceTokenString = [NSString stringWithFormat:@"%@", deviceToken];
    NSLog(deviceTokenString);
}
4

1 に答える 1

2

まあ、私は PHP を知らないので、具体的なコードを示すことはできませんが、一般的な原則について説明することはできます。

アプリケーションが起動したら、registerForRemoteNotificationTypes:メソッドを呼び出して Apple プッシュ通知に登録する必要があります。

登録が成功し、デバイス トークンを取得したら、それを の実装でサーバーに送信する必要がありますapplication:didRegisterForRemoteNotificationsWithDeviceToken:

サーバーはそれを何らかのデータベースに保存する必要があります。

通知を送信する PHP スクリプトは、そのデータベースからデバイス トークンを取得する必要があります。

于 2013-04-13T04:39:41.140 に答える