Skip to main content

نصب و راه‌اندازی پوشه در Xcode#

پیش‌نیازها#

نصب پوشه با استفاده از cocoapods#

در Podfile پوشه را برای Target اصلی و Notification Service Extension اضافه کنید:

target 'PusheDemo' do
use_frameworks!
pod 'Pushe', '1.0.16'
target 'PusheDemoTests' do
inherit! :search_paths
# Pods for testing
end
target 'PusheDemoUITests' do
inherit! :search_paths
# Pods for testing
end
end
target 'DemoNotificationServiceExtension' do
use_frameworks!
pod 'Pushe', '1.0.16'
end

سپس با دستور زیر می‌توانید پوشه را نصب کنید.

pod install --repo-update

اضافه کردن کلید‌های موردنیاز#

در فایل Info.plist متناظر با Target اصلی برنامه، کلید‌ها و مقادیر زیر را وارد کنید.

<plist version="1.0">
<dict>
...
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>
<key>Pushe</key>
<dict>
<key>AppGroupsId</key>
<string>Enter your App-Groups id</string>
<key>ManifestKey</key>
<string>Enter your Menifest-Key from console.pushe.co</string>
</dict>
</dict>
</plist>

برای نمونه:

<plist version="1.0">
<dict>
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>
<key>Pushe</key>
<dict>
<key>AppGroupsId</key>
<string>group.my.uri.myApp.shared</string>
<key>ManifestKey</key>
<string>cWQyMzR3bTlsOxBUcjQ0ZUBJaxZAOTA4NDU35Tk1MDcy</string>
</dict>
</dict>
</plist>

همچنین در فایل Info.plist متناظر با Notification Service Extension، کلیدها و مقادیر زیر را وارد کنید.

<plist version="1.0">
<dict>
<key>Pushe</key>
<dict>
<key>AppGroupsId</key>
<string>Enter your App-Groups id</string>
</dict>
</dict>
</plist>

اضافه‌کردن کد‌های موردنیاز#

و در Target مربوط به NotificationServiceExtension:

// NotificationService.swift file
import UserNotifications
import Pushe
class NotificationService: UNNotificationServiceExtension {
var contentHandler: ((UNNotificationContent) -> Void)?
var bestAttemptContent: UNMutableNotificationContent?
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
self.contentHandler = contentHandler
self.bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
if let bestAttemptContent = self.bestAttemptContent {
PusheClient.shared.didReceiveNotificationExtensionRequest(mutableContent: bestAttemptContent, contentHandler: contentHandler)
}
}
override func serviceExtensionTimeWillExpire() {
if let contentHandler = self.contentHandler, let bestAttemptContent = self.bestAttemptContent {
contentHandler(bestAttemptContent)
}
}
}

فراخوانی کدهای موردنیاز#

در کلاس AppDelegate، Pushe را import کنید. سپس تابع initialize را فراخوانی کنید.

// AppDelegate.swift file
import UIKit
import Pushe
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// initializing Pushe
PusheClient.shared.initialize()
// Override point for customization after application launch.
return true
}
}

تست و ثبت دستگاه در پوشه#

پس از اجرای برنامه و فراخوانی کد رجیستر پوشه، باید در کنسول Xcode لاگ‌های زیر را ببینید (ممکن است به دلیل ارتباط با سرور این پروسه چند ثانیه طول بکشد):

Setting up Pushe ...
apns-token:<APNS_TOKEN>
fcm-token:<FCM_TOKEN>
registering in Pushe ...
📗 -> successfully registered in Pushe


ادامه‌ی کار#

(بر روی لینک مورد نظر کلیک کنید)

پروژه‌ی نمونه در گیت‌هاب#

بررسی امکانات در نمونه‌ای از قبل طراحی شده دارای تمام امکانات کتابخانه‌ی پوشه

سوالات و مشکلات احتمالی#

در صورتی که در یکی از مراحل زیر به مشکلی برخوردید یا هر سوالی در مورد کتابخانه‌ دارید