4

UILocalNotificationがサウンドセットで起動し、ユーザーが通知アラートで[キャンセル]をタップすると、サウンドは停止します。ただし、ユーザーが[表示]をタップすると、iOSは通知をアプリに配信し、サウンドは再生され続けます。アプリからこの音をキャンセルする方法はありますか?通知が配信された後、アプリで通知をキャンセルしても機能しません(予期していなかったので、通知はすでに配信されています)。また、サウンドのシステムサウンドIDがないため(そもそも割り当てないでください)、AudioServicesDisposeSystemSoundIDを呼び出すことはできません(できますか?)。

ユーザーが通知のアラートのアクションボタンをタップした場合、UILocalNotificationサウンドの再生を停止することはできますか?

4

4 に答える 4

2

デバイスでも停止しません(5.1)

私はそれを修正しようとしていますが、私はそれを理解することができません。

これを使って実際にシミュレーターで停止させました

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotif) {
        [[UIApplication sharedApplication] cancelLocalNotification:localNotif];
    }    
    return YES;
}

しかし、それでもデバイスで停止しません

于 2012-04-13T15:04:23.587 に答える
1

どうやら、問題はシミュレーター(iOS 4.2 sdk)にのみ存在し、実際のデバイスには存在しません。

于 2011-01-24T20:55:22.923 に答える
0

アプリケーションデリゲートメソッドでは次のように処理できます。ユーザーが通知のアラートのアクションボタンをタップすると、次のメソッドが呼び出され、そこで通知をキャンセルできます。

- (void)application:(UIApplication *)app
didReceiveLocalNotification:(UILocalNotification *)notif {
[[UIApplication sharedApplication]cancelLocalNotification:notif];
}
于 2014-01-08T06:57:56.457 に答える
0

iPhone4で最初にテストしたときに同じ問題が発生しました。

この問題iOS8で解消されたようで、アプリに移行した後にキャンセルするとローカル通知音が停止します。

iPhone4[iOS-​​7.1.2] -ローカル通知音は
iPhone6[iOS-​​8.1.1]に関係なくアプリで再生され続けます-ローカル通知音はプログラムでキャンセルされると停止します

私が推測できることから、iOS 8.xのどこかに修正が存在するようです
(残念ながら、この問題に関するドキュメントやリリースノートを見つけることができませんでした)。

この問題は、iOS 8に焦点を当てたアプリでは問題になり
ません(ローカル通知をキャンセルした場合)

于 2014-12-01T22:57:06.987 に答える