对于“常规”推送通知与远程通知之间的区别以及我的免费预配配置文件中的哪些是可能的,我有些困惑。
我可以使用以下代码发送显示在锁屏上的推送通知:
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions: [UIApplication.LaunchOptionsKey : Any]?) -> Bool {
...
registerForPushNotifications()
createNotification()
return true
}
func registerForPushNotifications() {
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { [weak self] granted, _ in
print("Permission granted: \(granted)")
guard granted else { return }
}
}
static func createNotification() {
let content = UNMutableNotificationContent()
content.title = "test-title"
// 2. create trigger
var components = DateComponents.init()
components.hour = 14
components.minute = 39
let trigger = UNCalendarNotificationTrigger(dateMatching: components, repeats: false)
content.badge = 1
content.sound = UNNotificationSound.default
// 4. create send request
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)
// add request to send center
UNUserNotificationCenter.current().add(request) { error in
if error == nil {
print("Time Interval Notification scheduled!")
}
}
}
但是,我真正想要的是基于某些HTTP请求创建一个每日通知。
换句话说,我想向某个API发送HTTP请求(例如,它返回一个布尔值),并基于该值创建一个通知。
我已经做过一些研究,并且我认为远程通知可以这样做。
不幸的是,当我尝试注册远程通知时:
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
我得到一个错误:找不到适用于应用程序的有效“ aps-environment”授权字符串。
正如我所说的-我没有付费的苹果开发商会员资格。
我的问题是:
谢谢!
答案 0 :(得分:0)
似乎您对远程推送通知的工作方式有误解。您的服务器需要安排远程通知,而不是您的应用。您可以在服务器上安排每日远程通知,这足以满足您的需求,但是正如我已经说过的那样,您将需要服务器端逻辑来实现此目的。
否-您需要付费的开发人员成员身份才能使用远程推送通知。本地通知不需要付费会员,而远程通知则需要付费。