在我正在开发的应用程序中,我要求用户可以自定义服务器端的推送通知声音。我检查了documentation并说明了这一点 "声音文件可以位于客户端应用程序的主包中,也可以位于应用程序数据容器的Library / Sounds文件夹中。"
所以我把声音从后端下载到Library中的这个子文件夹,我这样创建:
+ (NSString *)soundFolderPath
{
NSString* path = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject];
path = [path stringByAppendingPathComponent:@"Sounds"];
NSLog(@"%@: Path to sounds folder: %@", [self class], path);
return path;
}
- (void)createSoundsDirectoryIfNeeded
{
NSFileManager* manager = [NSFileManager defaultManager];
NSString* path = [self.class soundFolderPath];
if (![manager fileExistsAtPath:path])
{
NSError* error = nil;
[manager createDirectoryAtPath:path withIntermediateDirectories:NO attributes:nil error:&error];
if (error) {
[self handleError:error];
return;
}
}
}
但是当我发送推送通知时,应用程序处于后台 - 它会播放默认通知声音而不是自定义通知声音。我已经检查了应用程序的数据容器 - 文件存在并且位于正确的文件夹中。文件格式符合文档中描述的内容,我甚至将这些声音添加为捆绑的资源,以及它实际工作的方式。
我无法找到解决方案,此时我想知道它是否可能。
有人可以帮我这个吗?