3

こんにちは、iDeviceでプッシュ通知を受信したときにデフォルトのプッシュサウンドを再生しようとしています。このコードを使用してサウンドを再生しました

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo` Method 

NSDictionary *test =(NSDictionary *)[userInfo objectForKey:@"aps"];
    NSString *alertString =(NSString *) [test objectForKey:@"alert"];
    NSLog(@"String recieved: %@",alertString);
    if (state == UIApplicationStateActive) {
            UIAlertView *alertmessage=[[UIAlertView alloc]initWithTitle:@"iEverything Tech"
                                                                message:alertString                                                    delegate:self
                                               cancelButtonTitle:@"OK"
                                               otherButtonTitles:nil];


            [alertmessage show];

            AudioServicesPlaySystemSound(1002);


        }

        if (state == UIApplicationStateInactive) {
            AudioServicesPlaySystemSound(1002);
        }

        if (state == UIApplicationStateBackground) {
            AudioServicesPlaySystemSound(1002);
        }

私の 2 番目の質問は、プッシュされたメッセージを AlertView に表示する方法ですか?

回答ありがとうございます。

また、Parse のようなプッシュ プロバイダーを使用することはできません。これは、サーバーを所有しており、自動的にプッシュする必要があるためです。

4

6 に答える 6

2

サウンドを再生するには、プッシュ通知ペイロードを使用する必要があります。Apple ドキュメントを読んでください。ここに画像の説明を入力

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW9

于 2012-11-22T13:08:30.173 に答える
2

NSEncoder が書いたように、サウンドは通知ペイロードに含まれている必要があります。2 番目の質問に答えるには、通知がアラートまたはバッジに表示されるか、まったく表示されないかのいずれかになります。ユーザーの通知設定の設定に応じて、これに影響を与えることはありません。

于 2012-11-22T13:11:32.633 に答える
1

これを試して通知メッセージを取得すると、下の「alertString」に受信したメッセージが保持されます

NSDictionary *test =(NSDictionary *)[userInfo objectForKey:@"aps"];
NSString *alertString =(NSString *) [test objectForKey:@"alert"];
NSLog(@"String recieved: %@",alertString);
于 2012-11-22T13:10:41.997 に答える
0

「アプリケーションdidfinishlaunchingwithoptions」に以下を追加します

NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
if (remoteNotif) {
    [self handleRemoteNotification:application userInfo:remoteNotif];
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
    [UIApplication sharedApplication].applicationIconBadgeNumber--;        
}

リモート通知を介してアプリを開く場合、通知をタップするとバッジ番号が減少します。ユーザーがアプリを開くたびにバッジ番号を削除する場合は、if条件でコードを実装するだけです。ここでの条件では、リモート通知をタップしてアプリケーションを開いた..、

于 2012-11-23T13:49:51.803 に答える
0

文字列をアラートに渡すだけで、

NSDictionary *test =(NSDictionary *)[userInfo objectForKey:@"aps"];
NSString *alertString =(NSString *) [test objectForKey:@"alert"];
NSLog(@"String recieved: %@",alertString);
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Title" message:alertString delegate:self cancelButtonTitle:@"OK" otherButtonTitles: @"Not OK", nil] autorelease];
[alert show];
于 2012-11-22T13:59:40.633 に答える
0

iOS で通知のデフォルト サウンドを再生するには、次のコードをペイロード json に追加する必要があります。

"sound" : "default"

したがって、「通知」ペイロードは次のようになります。

 "notification": {
        "title": "4x8",
        "body": "15:16.2342",
        "message":"https://www.google.com",
        "sound" : "default"
      }
于 2016-07-28T20:11:12.917 に答える