免费配置帐户是否可以远程通知?
Are remote notifications possible for free provisioning account?
我对“正常”推送通知与远程通知之间的区别以及我的免费配置文件中哪些是可能的感到有点困惑。
我可以使用以下代码发送出现在锁定屏幕上的推送通知:
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 请求(比如说 returns 一个布尔值)并根据该值创建一个通知。
我做了一些研究,我认为远程通知能够做到这一点。
不幸的是,当我尝试注册远程通知时:
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
我得到一个错误:没有为应用程序找到有效的“aps-environment”授权字符串。
正如我所说 - 我没有付费的 Apple 开发者会员资格。
我的问题是:
- 远程通知真的能满足我的需求吗?
- 是否可以使用免费配置帐户进行远程通知?
我发现“正常”推送通知确实可行。
谢谢!
看来您对远程推送通知的工作原理有误解。您的服务器需要安排远程通知,而不是您的应用程序。您可以在您的服务器上安排每日远程通知,这应该可以满足您的需求,但正如我所说,您需要 server-side 逻辑来实现此目的。
否 - 您需要成为付费开发人员会员才能使用远程推送通知。本地通知不需要付费会员资格,但远程通知需要。
我对“正常”推送通知与远程通知之间的区别以及我的免费配置文件中哪些是可能的感到有点困惑。
我可以使用以下代码发送出现在锁定屏幕上的推送通知:
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 请求(比如说 returns 一个布尔值)并根据该值创建一个通知。
我做了一些研究,我认为远程通知能够做到这一点。
不幸的是,当我尝试注册远程通知时:
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
我得到一个错误:没有为应用程序找到有效的“aps-environment”授权字符串。
正如我所说 - 我没有付费的 Apple 开发者会员资格。
我的问题是:
- 远程通知真的能满足我的需求吗?
- 是否可以使用免费配置帐户进行远程通知?
我发现“正常”推送通知确实可行。
谢谢!
看来您对远程推送通知的工作原理有误解。您的服务器需要安排远程通知,而不是您的应用程序。您可以在您的服务器上安排每日远程通知,这应该可以满足您的需求,但正如我所说,您需要 server-side 逻辑来实现此目的。
否 - 您需要成为付费开发人员会员才能使用远程推送通知。本地通知不需要付费会员资格,但远程通知需要。