Маршрутизация push-уведомлений с использованием глубоких ссылок в SwiftUIIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Гость
 Маршрутизация push-уведомлений с использованием глубоких ссылок в SwiftUI

Сообщение Гость »

В настоящее время я работаю над интеграцией push-уведомлений в свое iOS-приложение SwiftUI и хочу реализовать функцию, позволяющую пользователям перенаправляться к определенным представлениям в приложении при нажатии на уведомление. Я слышал о глубоких ссылках и использовании ViewRouter в SwiftUI для целей навигации, но не совсем понимаю, как настроить его для push-уведомлений.
Любые идеи или примеры, демонстрирующие реализацию этой функции будет очень признателен. Спасибо!
Вот что я сделал:
Делегировать приложение:
`class AppDelegate: NSObject, UIApplicationDelegate, MessagingDelegate, UNUserNotificationCenterDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
application.registerForRemoteNotifications()
FirebaseApp.configure()
Messaging.messaging().delegate = self
UNUserNotificationCenter.current().delegate = self

registerForPushNotifications()

return true
}

func registerForPushNotifications() {
if #available(iOS 10.0, *) {
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: {_,_ in })
// For iOS 10 data message (sent via FCM)
Messaging.messaging().delegate = self
} else {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
UIApplication.shared.registerUserNotificationSettings(settings)
}

UIApplication.shared.registerForRemoteNotifications()
}

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
Messaging.messaging().apnsToken = deviceToken
}

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
if let fcm = Messaging.messaging().fcmToken {
Singleton.shared.storeString(value: fcm, in: .fcmToken)
// print("FCM", fcm)
}
}
}`

Менеджер уведомлений:
`@MainActor
class NotificationManager: ObservableObject{
@Published private(set) var hasPermission = false

init() {
Task{
await getAuthStatus()
}
}

func request() async{
do {
try await UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound])
await getAuthStatus()
} catch{
print(error)
}
}

func getAuthStatus() async {
let status = await UNUserNotificationCenter.current().notificationSettings()
switch status.authorizationStatus {
case .authorized, .ephemeral, .provisional:
hasPermission = true
default:
hasPermission = false
}
}
}`


Подробнее здесь: https://stackoverflow.com/questions/781 ... in-swiftui
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему разрешенные ссылки не добавляются автоматически для глубоких ссылок на устройствах Android 13?
    Гость » » в форуме Android
    0 Ответы
    75 Просмотры
    Последнее сообщение Гость
  • Невозможно открыть приложение для создания Jetpack с помощью глубоких ссылок.
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Перенаправление глубоких ссылок
    Anonymous » » в форуме Android
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Перенаправление глубоких ссылок
    Anonymous » » в форуме IOS
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Разрывы глубоких ссылок WalletConnect в Android WebView "wc:3cc..." должны быть "wc://3cc..."
    Anonymous » » в форуме Android
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»