معرفی پروتکل PusheProtocol
پروتکل PusheProtocol
، توابعی را که پوشه در اختیار کاربر قرار میدهد، در خود دارد و کلاس PusheClient
این پروتکل را پیادهسازی کرده است. این توابع در ادامه معرفی شدهاند.
functionها
didReceiveNotificationExtensionRequest(::)
این تابع محتوای ضمیمه شده به پوش نوتیفیکیشن را دانلود میکند. این تابع را باید در تابع
didReceive(_:withContentHandler:)
از کلاس NotificationService
که در Target
متناظر با NotificationServiceExtension
قرار دارد، call
کنید.
نحوه اضافه کردن Notification Service Extension
isRegistered()
وضعیت ثبت دستگاه در سرورهای پوشه را مشخص میکند.
getAPNsToken()
در صورت دریافت توکن APNs
توسط دستگاه، این توکن رو برمیگرداند. درغیراینصورت nil
برمیگرداند.
getDeviceId()
مقدار متناظر با
UIDevice.current.identifierForVendor?.uuidString
را برای دستگاه برمیگرداند.
getAdvertisingId()
مقدار متناظر با
ASIdentifierManager.shared().advertisingIdentifier.uuidString
را برای دستگاه برمیگرداند.
subscribe(to:)
user را در topic ورودی، ثبتنام میکند.
subscribe(to:completionHandler:)
user را در topic ورودی ثبتنام میکند، سپس closure ورودی را اجرا میکند.
unsubscribe(from:)
ثبتنام user در topic ورودی را باطل میکند.
unsubscribe(from:completionHandler:)
ثبتنام user را در topic ورودی باطل میکند، سپس closure ورودی را اجرا میکند.
getSubscribedTopics()
تاپیکهایی که کاربر در آنها عضویت دارد را برمیگرداند.
addTags(with:)
tag
های ورودی را برای کاربر ثبت میکند. توجه کنید که برای هر دستگاه حداکثر میتوانید ۱۰ عدد tag
تعریف کنید.
removeTags(with:)
تگهای دارای کلیدهای مشخصشده را برای کاربر در صورت وجود حذف میکند.
getSubscribedTags()
یک دیکشنری شامل تگهایی که برای کاربر ثبت شدهاند را برمیگرداند.
sendEvent(event:)
رویداد ورودی را برای کاربر ثبت میکند.
sendEvent(with:)
رویدادی را با نام ورودی میسازد و برای کاربر ثبت میکند.
property
ها
registerationCompletionHandler
میتوانید callback
خود برای رجیسترشدن دستگاه در پوشه را به این متغیر assign
کنید. پس از رجیستر شدن دستگاه در پوشه، این closure
اجرا خواهد شد.