2015-01-07 21 views
6

Tôi đã triển khai hệ thống thông báo đẩy trong ứng dụng của mình bằng cách sử dụng Parse.com và mọi thứ hoạt động tuyệt vời!Đẩy Thông báo: không có âm thanh

Vấn đề duy nhất của tôi là khi thông báo đến: nó không phát bất kỳ âm thanh nào!

tôi đi đến các thiết lập (trong viên thuốc của tôi), dưới thông báo, tôi thấy điều này:

enter image description here

Như bạn thấy những "âm thanh" và "huy hiệu" là OFF. Nếu tôi bật chúng sau đó khi một thông báo đẩy đến: nó phát âm thanh!

Vì vậy, ... Tôi muốn rằng khi tôi cài đặt ứng dụng của tôi, 2 tùy chọn này là theo mặc định TRUE.

Điều này có khả thi không? Làm thế nào tôi có thể làm điều đó?

Tôi đang làm việc trong Swift và đây là mã của tôi cho đến nay:

phương pháp didFinishLaunchingWithOptions

var pushSettings: UIUserNotificationSettings = UIUserNotificationSettings(forTypes: UIUserNotificationType.Sound | UIUserNotificationType.Alert | UIUserNotificationType.Badge , categories: nil) 
    application.registerUserNotificationSettings(pushSettings) 
    application.registerForRemoteNotifications() 

Cảm ơn rất nhiều vì đã giúp tôi

Trả lời

0

Tương tự như những gì bạn có cho UIUserNotificationSettings, dùng thử RemoteNotification.

Ví dụ, trong Objective-C:

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

Trong Swift là .registerForRemoteNotifications() và nó làm những gì bạn có nghĩa là nhưng không thay đổi tình hình :) – ernestocattaneo

4
UIApplication.sharedApplication().registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Badge | UIUserNotificationType.Sound | UIUserNotificationType.Alert, categories: nil)) 

bạn phải thiết lập các soundName cũng bởi vì mặc định là không có âm thanh:

Đối với tài sản này, chỉ định tên tập tin (bao gồm cả phần mở rộng) của tài nguyên âm thanh trong gói chính của ứng dụng hoặc UILocalNotificationDefaultSoundName để yêu cầu hệ thống mặc định là âm thanh . Khi hệ thống hiển thị cảnh báo cho thông báo địa phương hoặc đánh dấu biểu tượng ứng dụng, hệ thống sẽ phát âm thanh này. Giá trị mặc định là nil (không có âm thanh ). Âm thanh kéo dài hơn 30 giây không được hỗ trợ. Nếu bạn chỉ định tệp có âm thanh phát hơn 30 giây, thay vào đó, âm thanh mặc định sẽ được phát.

yourNotification.soundName = UILocalNotificationDefaultSoundName 

soundName

cho các thông báo từ xa mà bạn cần phải sử dụng The Notification Payload

+0

Cảm ơn thông tin! bây giờ nó có ý nghĩa .. nhưng xin lỗi nhưng tôi đặt mã này ở đâu? (yourNotification.soundName = UILocalNotificationDefaultSoundName) thanksss – ernestocattaneo

+0

http://stackoverflow.com/questions/27348209/user-set-time-for-notification-in-swift/27349421#27349421 –

+0

Trong bộ điều khiển chế độ xem của tôi? Strange .. và Im nói về remoteNotification .. không phải địa phương .. Infact không có UIRemoteNotification ... những gì bạn nói? – ernestocattaneo

0

Tôi đoán rằng đây là một vấn đề bạn chỉ đang phải đối mặt vào đó thiết bị chính xác. Hãy thử nó trên một số khác và xem nếu nó là khác nhau.

0

Nếu bạn muốn chơi âm thanh tiêu chuẩn IOS cho Notification của bạn, bạn cần phải thiết lập content.sound-UNNotificationSound.default() Bạn có thể làm điều này trong chức năng lịch trình của bạn như tôi đã làm ở đây của bạn: ứng dụng:

func schdule(date:Date,repeats:Bool)->Date?{ 
    let content = UNMutableNotificationContent() 
    content.sound = UNNotificationSound.default() 
    content.title = "Title" 
    content.body = "blablablabla" 
    content.setValue("YES", forKeyPath:"shouldAlwaysAlertWhileAppIsForeground") 

    let trigger = UNCalendarNotificationTrigger(dateMatching: yourDateComponents,repeats: repeats) 
    let request = UNNotificationRequest(identifier: "TestNotification", content: content, trigger: trigger) 

    UNUserNotificationCenter.current().add(request) { (error:Error?) in 
     if error == nil { 
      print("Notification Schduled",trigger.nextTriggerDate()?.formattedDate ?? "Date nil") 
     } else { 
      print("Error schduling a notification",error?.localizedDescription ?? "") 
     } 
    } 
    return trigger.nextTriggerDate() 
} 
+0

Bạn cần thêm thông tin này vào tệp SwiftManManager nếu bạn đã tạo. Nếu không tôi không thể giúp bạn – Void2g

Các vấn đề liên quan