معرفی پروتکل PusheProtocol
پروتکل PusheProtocol
، توابعی را که پوشه در اختیار کاربر قرار میدهد، در خود دارد و کلاس PusheClient
این پروتکل را پیادهسازی کرده است. این توابع در ادامه معرفی شدهاند.
functionها
didReceiveNotificationExtensionRequest(::)
@available(iOS 10.0, *)
@objc(didReceiveNotificationExtensionRequest::) func didReceiveNotificationExtensionRequest(mutableContent: UNMutableNotificationContent, contentHandler: @escaping (UNNotificationContent) -> ())
این تابع محتوای ضمیمه شده به پوش نوتیفیکیشن را دانلود میکند. این تابع را باید در تابع
didReceive(_:withContentHandler:)
از کلاس NotificationService
که در Target
متناظر با NotificationServiceExtension
قرار دارد، call
کنید.
نحوه اضافه کردن Notification Service Extension
isRegistered()
@objc(isRegistered) func isRegistered() -> Bool
وضعیت ثبت دستگاه در سرورهای پوشه را مشخص میکند.
getAPNsToken()
@objc(getAPNsTokenAsString) func getAPNsToken() -> String?
@objc(getAPNsTokenAsData) func getAPNsToken() -> Data?
در صورت دریافت توکن APNs
توسط دستگاه، این توکن رو برمیگرداند. درغیراینصورت nil
برمیگرداند.
getDeviceId()
@objc(getDeviceId) func getDeviceId() -> String?
مقدار متناظر با
UIDevice.current.identifierForVendor?.uuidString
را برای دستگاه برمیگرداند.
getAdvertisingId()
@objc(getAdvertisingId) func getAdvertisingId() -> String
مقدار متناظر با
ASIdentifierManager.shared().advertisingIdentifier.uuidString
را برای دستگاه برمیگرداند.
subscribe(to:)
@objc(subscribe:) func subscribe(to topic: String)
user را در topic ورودی، ثبتنام میکند.
subscribe(to:completionHandler:)
@objc(subscribe::) func subscribe(to topic: String, completionHandler: @escaping (Error?) -> ())
user را در topic ورودی ثبتنام میکند، سپس closure ورودی را اجرا میکند.
unsubscribe(from:)
@objc(unsubscribe:) func unsubscribe(from topic: String)
ثبتنام user در topic ورودی را باطل میکند.
unsubscribe(from:completionHandler:)
@objc(unsubscribe::) func unsubscribe(from topic: String, completionHandler: @escaping (Error?) -> ())
ثبتنام user را در topic ورودی باطل میکند، سپس closure ورودی را اجرا میکند.
getSubscribedTopics()
@objc(getSubscribedTopics) func getSubscribedTopics() -> [String]
تاپیکهایی که کاربر در آنها عضویت دارد را برمیگرداند.
addTags(with:)
@objc(addTags:) func addTags(with keysAndValues: [String: String])
tag
های ورودی را برای کاربر ثبت میکند. توجه کنید که برای هر دستگاه حداکثر میتوانید ۱۰ عدد tag
تعریف کنید.
removeTags(with:)
@objc(removeTags:) func removeTags(with keys: [String])
تگهای دارای کلیدهای مشخصشده را برای کاربر در صورت وجود حذف میکند.
getSubscribedTags()
@objc(getSubscribedTags) func getSubscribedTags() -> [String: String]
یک دیکشنری شامل تگهایی که برای کاربر ثبت شدهاند را برمیگرداند.
sendEvent(event:)
@objc(sendEvent:) func sendEvent(event: Event)
رویداد ورودی را برای کاربر ثبت میکند.
sendEvent(with:)
@objc(sendEventWithName:) func sendEvent(with name: String)
رویدادی را با نام ورودی میسازد و برای کاربر ثبت میکند.
property
ها
registerationCompletionHandler
@objc var registerationCompletionHandler: (() -> ())? { get set }
میتوانید callback
خود برای رجیسترشدن دستگاه در پوشه را به این متغیر assign
کنید. پس از رجیستر شدن دستگاه در پوشه، این closure
اجرا خواهد شد.