0

アプリのプッシュ通知サービスを送信するために非常に多くのチュートリアルを試しました。デバイスでテストしているときは機能します。しかし、アプリがApp Storeで起動された後にライブでテストし、ストアからダウンロードしてデバイスにインストールし、プッシュ通知を送信するためにphpファイルを実行すると、取得できません.Hereはコードですプッシュ通知とから学んだチュートリアルに使用しました。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
 (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];




return YES;
}


- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
NSLog(@"My token is: %@", deviceToken);

}

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{
NSLog(@"Failed to get token, error: %@", error);
}

ライブでそれを教えてくれるチュートリアルはありますか.PHPファイルの環境をサンドボックスからライブに変更しました.ガイダンスをお願いします.

4

2 に答える 2

2

私は自分でこれを解決しました。

Liveで動作しない理由は、

(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

この方法では、デバイストークンが私のphpサーバーデータベースに正しく登録されていません。次のコードは、PHPサーバーにデバイストークンを登録するのに役立ちます

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
NSLog(@"My token is: %@", deviceToken);

NSString* newToken = [deviceToken description];

newToken = [newToken stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
newToken = [newToken stringByReplacingOccurrencesOfString:@" " withString:@""];

NSLog(@"%@",newToken);
NSString *urlString = [NSString stringWithFormat:@"http://sample.com/registerDevice.php?appId=xxx&deviceToken=%@",newToken];

NSURL *url = [[NSURL alloc] initWithString:urlString];

NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];

NSData *urlData;
NSURLResponse *response;
urlData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:nil];
NSLog(@"data send");

}
于 2013-03-08T09:22:17.510 に答える
1

まず、開発プッシュ通知証明書 (またはアドホック証明書) を使用してアプリケーションをインストールし、deviceToken を取得し、アプリ ストア アプリケーションをインストールして、以前のデバイス トークンを使用してプッシュ通知を送信することは機能しないと思います。

このリンクはそれを確認します:サンドボックスと本番環境のiPhone APNSデバイストークン

これはおそらく、アプリケーションにプッシュ通知を送信できない理由を説明しています。

また、デバイス トークンをサーバーに送信する必要があります。これは、サーバーがすべてのデバイス トークンを知る唯一の方法だからです。

Apple のドキュメントを確認することをお勧めします。

于 2012-08-13T12:34:17.487 に答える