diff --git a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate
index 2c94e42..597c8e0 100644
Binary files a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate and b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
index f148daf..40c2645 100644
--- a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
+++ b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
@@ -497,22 +497,6 @@
landmarkType = "7">
-
-
-
-
@@ -1018,8 +1002,8 @@
filePath = "OrderScheduling/Rescue/ViewController/RescuePhotoController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "130"
- endingLineNumber = "130"
+ startingLineNumber = "139"
+ endingLineNumber = "139"
landmarkName = "viewDidLoad()"
landmarkType = "7">
@@ -1034,8 +1018,8 @@
filePath = "OrderScheduling/Rescue/ViewController/RescuePhotoController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "109"
- endingLineNumber = "109"
+ startingLineNumber = "118"
+ endingLineNumber = "118"
landmarkName = "viewDidLoad()"
landmarkType = "7">
@@ -1050,8 +1034,8 @@
filePath = "OrderScheduling/Rescue/ViewController/RescuePhotoController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "119"
- endingLineNumber = "119"
+ startingLineNumber = "128"
+ endingLineNumber = "128"
landmarkName = "viewDidLoad()"
landmarkType = "7">
@@ -1072,22 +1056,6 @@
landmarkType = "7">
-
-
-
-
+
+
@@ -2261,70 +2244,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -2687,8 +2526,8 @@
filePath = "OrderScheduling/Rescue/ViewController/RescuePhotoController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "98"
- endingLineNumber = "98"
+ startingLineNumber = "107"
+ endingLineNumber = "107"
landmarkName = "init(environmentPics:)"
landmarkType = "7">
@@ -2703,8 +2542,8 @@
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "814"
- endingLineNumber = "814"
+ startingLineNumber = "823"
+ endingLineNumber = "823"
landmarkName = "collectionView(_:didSelectItemAt:)"
landmarkType = "7">
@@ -2797,8 +2636,8 @@
filePath = "OrderSchedulingNotificationService/NotificationService.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "48"
- endingLineNumber = "48"
+ startingLineNumber = "47"
+ endingLineNumber = "47"
landmarkName = "didReceive(_:withContentHandler:)"
landmarkType = "7">
@@ -3037,54 +2876,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
@@ -3111,8 +2902,8 @@
filePath = "OrderScheduling/Global/Tool/Tool.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "212"
- endingLineNumber = "212"
+ startingLineNumber = "207"
+ endingLineNumber = "207"
landmarkName = "cycleVoice()"
landmarkType = "7">
@@ -3127,8 +2918,8 @@
filePath = "OrderScheduling/Global/Tool/Tool.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "211"
- endingLineNumber = "211"
+ startingLineNumber = "206"
+ endingLineNumber = "206"
landmarkName = "cycleVoice()"
landmarkType = "7">
@@ -3143,8 +2934,8 @@
filePath = "OrderScheduling/Global/Tool/Tool.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "213"
- endingLineNumber = "213"
+ startingLineNumber = "208"
+ endingLineNumber = "208"
landmarkName = "cycleVoice()"
landmarkType = "7">
@@ -3197,5 +2988,21 @@
landmarkType = "7">
+
+
+
+
diff --git a/OrderScheduling/Global/GroupData/GroupData.swift b/OrderScheduling/Global/GroupData/GroupData.swift
index 261f3f7..83b12a1 100644
--- a/OrderScheduling/Global/GroupData/GroupData.swift
+++ b/OrderScheduling/Global/GroupData/GroupData.swift
@@ -13,6 +13,16 @@ open class GroupData {
public static let `default` = GroupData()
let groudUserDefault = UserDefaults(suiteName: GROUPID)
+ // 判断新推送是不是新订单
+ func isOrderPushNotification(userInfo:[AnyHashable:Any]?) -> Bool {
+ if let userInfo {
+ if let aps = userInfo[pushNoti_aps_key] as? [String:Any], let dict = (aps[pushNoti_alert_key] as? Dictionary), (dict[pushNoti_title_key] as? String) == pushNoti_newOrder_key {
+ return true
+ }
+ }
+ return false
+ }
+
// 不需要记录
public var bestAttemptContentUserInfo : [AnyHashable:Any]? {
return groudUserDefault?.object(forKey: bestAttemptContentUserInfo_key) as? [AnyHashable:Any]
diff --git a/OrderScheduling/Global/Tool/Tool.swift b/OrderScheduling/Global/Tool/Tool.swift
index 2508716..577143d 100644
--- a/OrderScheduling/Global/Tool/Tool.swift
+++ b/OrderScheduling/Global/Tool/Tool.swift
@@ -138,19 +138,17 @@ open class Tool {
return "未知"
}
+ // MARK: 远程推送相关
func getOrderString(userInfo:[AnyHashable:Any]?) -> String{
var string : String = ""
- if let userInfo {
- let aps = userInfo["aps"] as? [String:Any]
- if let aps, (aps["alert"] as? String) == "新订单" {
- let juheVehcileName = userInfo["juheVehcileName"] as? String
- let taskCode = userInfo["taskCode"] as? String
- if juheVehcileName?.isEmpty == false {
- string = "您有一条新的聚合订单\(taskCode ?? "")"
- }else{
- string = "您有一条新订单\(taskCode ?? "")"
- }
+ if GROUP.isOrderPushNotification(userInfo: userInfo) == true {
+ let taskCode = userInfo?[pushNoti_taskCode_key] as? String
+ let juheVehcileName = userInfo?[pushNoti_juheVehcileName_key] as? String
+ if juheVehcileName?.isEmpty == false {
+ string = "您有一条新的聚合订单\(taskCode ?? "")"
+ }else{
+ string = "您有一条新订单\(taskCode ?? "")"
}
}
@@ -183,25 +181,22 @@ open class Tool {
return
}
- if let userInfo {
- let aps = userInfo[aps_key] as? [String:Any]
- if let aps, (aps[alert_key] as? String) == "新订单" {
- let juheVehcileName = userInfo[juheVehcileName_key] as? String
- var auidoUrl : URL?
- if juheVehcileName?.isEmpty == false {
- auidoUrl = URL(string: Bundle.main.path(forResource: juheNewOrderAudio_key, ofType: nil) ?? "")
- }else{
- auidoUrl = URL(string: Bundle.main.path(forResource: newOrderAudio_key, ofType: nil) ?? "")
- }
-
- if let auidoUrl {
- var audioSoundID:SystemSoundID = 0
- AudioServicesCreateSystemSoundID(auidoUrl as CFURL, &audioSoundID)
- systemSoundID = audioSoundID
- needPlayAudio = true
- soundCount = 0
- cycleVoice()
- }
+ if GROUP.isOrderPushNotification(userInfo: userInfo) == true {
+ let juheVehcileName = userInfo?[pushNoti_juheVehcileName_key] as? String
+ var auidoUrl : URL?
+ if juheVehcileName?.isEmpty == false {
+ auidoUrl = URL(string: Bundle.main.path(forResource: juheNewOrderAudio_key, ofType: nil) ?? "")
+ }else{
+ auidoUrl = URL(string: Bundle.main.path(forResource: newOrderAudio_key, ofType: nil) ?? "")
+ }
+
+ if let auidoUrl {
+ var audioSoundID:SystemSoundID = 0
+ AudioServicesCreateSystemSoundID(auidoUrl as CFURL, &audioSoundID)
+ systemSoundID = audioSoundID
+ needPlayAudio = true
+ soundCount = 0
+ cycleVoice()
}
}
}
diff --git a/OrderScheduling/Rescue/ViewController/RescueController.swift b/OrderScheduling/Rescue/ViewController/RescueController.swift
index 62ab27b..701cabc 100644
--- a/OrderScheduling/Rescue/ViewController/RescueController.swift
+++ b/OrderScheduling/Rescue/ViewController/RescueController.swift
@@ -792,14 +792,23 @@ extension RescuePendingDispatchController : UICollectionViewDelegate, UICollecti
let imageUrlStr = environmentPics[indexPath.item]
cell!.imageView.image = nil
if imageUrlStr.contains(".mp4?") == true {
- DispatchQueue.global().async {
- let image = DDImage.dd_thumbnailImage(forVideo: URL(string: imageUrlStr)!).dd_compress(withQulitySize: 5 * 1024)
- DispatchQueue.main.async {
- cell!.imageView.image = image
+ if let url = URL(string: imageUrlStr) {
+ DispatchQueue.global().async {
+ DDImage.dd_thumbnailImage(forVideo: url) { (thumbnailImage, _, _) in
+ let image = thumbnailImage?.dd_compress(withQulitySize: 5 * 1024)
+ DispatchQueue.main.async {
+ cell!.imageView.image = image
+ }
+ }
+ }
+
+ DispatchQueue.global().async {
+ let cmTime = TOOL.getDuration(url: url)
+ DispatchQueue.main.async {
+ cell!.dateLabel.text = TOOL.getVideoDateString(duration: Int(cmTime.seconds))
+ }
}
}
- let cmTime = TOOL.getDuration(url: URL(string: imageUrlStr)!)
- cell!.dateLabel.text = TOOL.getVideoDateString(duration: Int(cmTime.seconds))
}else{
cell!.imageView.sd_setImage(with: URL(string: imageUrlStr))
cell!.dateLabel.text = nil
diff --git a/OrderScheduling/Rescue/ViewController/RescuePhotoController.swift b/OrderScheduling/Rescue/ViewController/RescuePhotoController.swift
index 9fbb664..23d897b 100644
--- a/OrderScheduling/Rescue/ViewController/RescuePhotoController.swift
+++ b/OrderScheduling/Rescue/ViewController/RescuePhotoController.swift
@@ -24,14 +24,23 @@ extension RescuePhotoController : UICollectionViewDelegate,UICollectionViewDataS
cell?.imageView.image = nil
if model.url.contains(".mp4?") == true {
- DispatchQueue.global().async {
- let image = DDImage.dd_thumbnailImage(forVideo: URL(string: model.url)!)
- DispatchQueue.main.async {
- cell!.imageView.image = image
- }
- }
- let cmTime = TOOL.getDuration(url: URL(string: model.url)!)
- cell!.dateLabel.text = TOOL.getVideoDateString(duration: Int(cmTime.seconds))
+ if let url = URL(string: model.url) {
+ DispatchQueue.global().async {
+ DDImage.dd_thumbnailImage(forVideo: url) { (thumbnailImage, _, _) in
+ let image = thumbnailImage?.dd_compress(withQulitySize: 5 * 1024)
+ DispatchQueue.main.async {
+ cell!.imageView.image = image
+ }
+ }
+ }
+
+ DispatchQueue.global().async {
+ let cmTime = TOOL.getDuration(url: url)
+ DispatchQueue.main.async {
+ cell!.dateLabel.text = TOOL.getVideoDateString(duration: Int(cmTime.seconds))
+ }
+ }
+ }
}else{
cell!.imageView.sd_setImage(with: URL(string: model.url))
cell!.dateLabel.text = nil
diff --git a/OrderScheduling/Strings/CommonKeyStrings.swift b/OrderScheduling/Strings/CommonKeyStrings.swift
index b858224..a272c41 100644
--- a/OrderScheduling/Strings/CommonKeyStrings.swift
+++ b/OrderScheduling/Strings/CommonKeyStrings.swift
@@ -7,12 +7,22 @@
import Foundation
-public let aps_key = "aps"
+// 远程推送的键,字符串为后台定义,切勿更改
+public let pushNoti_aps_key = "aps"
-public let alert_key = "alert"
+public let pushNoti_alert_key = "alert"
-public let juheVehcileName_key = "juheVehcileName"
+public let pushNoti_title_key = "title"
+public let pushNoti_body_key = "body"
+
+public let pushNoti_juheVehcileName_key = "juheVehcileName"
+
+public let pushNoti_taskCode_key = "taskCode"
+
+public let pushNoti_newOrder_key = "新订单"
+
+// 本地音频的键
public let juheNewOrderAudio_key = "juheNewOrderAudio.wav"
public let newOrderAudio_key = "newOrderAudio.wav"
diff --git a/OrderSchedulingNotificationService/NotificationService.swift b/OrderSchedulingNotificationService/NotificationService.swift
index 8089804..f0e08aa 100644
--- a/OrderSchedulingNotificationService/NotificationService.swift
+++ b/OrderSchedulingNotificationService/NotificationService.swift
@@ -23,11 +23,10 @@ class NotificationService: UNNotificationServiceExtension {
let userInfo = bestAttemptContent.userInfo
// 只有订单类型才写入group,因为需要弹窗和声音
- let aps = userInfo[aps_key] as? [String:Any]
- if let aps, (aps[alert_key] as? String) == "新订单" {
+ if GROUP.isOrderPushNotification(userInfo: userInfo) == true {
var sound : UNNotificationSound?
- let juheVehcileName = userInfo[juheVehcileName_key] as? String
+ let juheVehcileName = userInfo[pushNoti_juheVehcileName_key] as? String
if juheVehcileName?.isEmpty == false {
sound = UNNotificationSound(named: UNNotificationSoundName(rawValue: juheNewOrderAudio_key))
}else{