Appcelerator通知IOS 8 - 没有声音

时间:2015-06-08 21:06:42

标签: ios titanium appcelerator

我正在使用appcelerator 4.0.0。我已经下载了这个appcelerator的代码,并尝试在通知中添加声音。 http://www.appcelerator.com/blog/2014/09/new-in-sdk-3-4-ios-8-interactive-notifications/

然而,我似乎无法让声音发挥作用。设备上的通知设置/权限很好。我已经在模拟器和真实设备上进行了测试。

var notif = Ti.App.iOS.scheduleLocalNotification({
    date: new Date(new Date().getTime() + 5000), // send it in 5 sec
    alertBody: 'This is your message',
    badge: 1,
    sound: 'default',
    userInfo: {"url": "http://www.download.com/resource/asset.json", id:"1"},
    category: "DOWNLOAD_CONTENT"
});  

3 个答案:

答案 0 :(得分:1)

等等,你的代码中存在一些误解。

Ti.App.iOS.scheduleLocalNotification安排通知,但如果您设置了date = new Date(new Date().getTime()),则该应用仍处于前台...当应用处于前台时,不会显示iOS横幅=没有声音。

所以,你需要做的是date: new Date(Date.now() + 5000),并关闭应用程序。

答案 1 :(得分:0)

我确实遇到了同样的问题,而且我正在使用Ti sdk 5.2.0.GA,显然没有播放声音,除非明确设置属性声音。

所以我的解决方法是:

在互联网上搜索默认通知声音文件,并在app/assets/iphone文件夹下使用。

var notif = Ti.App.iOS.scheduleLocalNotification({
    date: new Date(new Date().getTime() + 5000), // send it in 5 sec
    alertBody: 'This is your message',
    sound: '/default-notif.m4r'
)};

希望这有帮助!

答案 2 :(得分:0)

对于运行iOS 8及更高版本的设备,您需要注册应用程序以使用本地通知服务。使用Titanium.App.iOS.registerUserNotificationSettings()方法在本地通知服务中注册应用程序。将方法的类型属性设置为要使用的通知类型数组。

Titanium.App.iOS.USER_NOTIFICATION_TYPE_ALERT:允许应用程序显示警报或横幅消息。 Titanium.App.iOS.USER_NOTIFICATION_TYPE_BADGE:允许应用程序修改应用程序图标中的徽章值。 Titanium.App.iOS.USER_NOTIFICATION_TYPE_NONE:禁用应用程序UI通知。通知事件仍将通知应用程序通知。 Titanium.App.iOS.USER_NOTIFICATION_TYPE_SOUND:允许应用程序播放声音。

if (Ti.Platform.name == "iPhone OS" && parseInt(Ti.Platform.version.split(".")[0]) >= 8) {
Ti.App.iOS.registerUserNotificationSettings({
    types: [
        Ti.App.iOS.USER_NOTIFICATION_TYPE_ALERT,
        Ti.App.iOS.USER_NOTIFICATION_TYPE_SOUND,
        Ti.App.iOS.USER_NOTIFICATION_TYPE_BADGE
    ]
});

}