Связывание сцены с внешним событиемIOS

Программируем под IOS
Ответить
Anonymous
 Связывание сцены с внешним событием

Сообщение Anonymous »

Я работаю над приложением iPados swiftui, поддерживающего несколько сцен, каждая сцена отвечает на определенный способ запуска приложения. Если приложение было запущено путем нажатия соответствующего файла или глубокой ссылки (пользовательский URL), то используется urlhandlerscene . Если приложение было запущено QuickAction (Long Tap on Appcecon), то другая сцена вызывается и т. Д. Каждая сцена имеет цель и отвечает на конкретный запуск.
Но после определения Handlesexternlevents (Matching :) модификатор сцены, Urlhhandlerscene запускается, когда пользователь Taps Taps Assired File -файл. />

Код: Выделить всё

@main
struct IOSSwiftUIScenesApp: App {

var body: some Scene {
DefaultScene()

URLHandlerScene()
.handlesExternalEvents(matching: ["file://"]) // Launched by an associated file
.handlesExternalEvents(matching: ["Companion://"]) // Launched by Deeplink.

// Other scenes
}
}

struct URLHandlerScene: Scene {

@State private var inputURL: URL // Store the incoming URL

init() {
self.inputURL = URL(string: "Temp://")!
}

var body: some Scene {
WindowGroup {
URLhandlerView(inputURL: $inputURL)
.onOpenURL(perform: { (fileURL: URL) in
log(String(format: "URLhandlerView().onOpenURL | Thread.current = %@", String(describing: Thread.current)))
log("fileURL = " + String(describing: fileURL))

inputURL = fileURL
})
}
}
}
Как показано выше, я прикрепил handlesexternalevents (matching :) модификатор с «file: //» для запуска ассоциированного файла, а «Companion» - моя пользовательская схема URL. Согласно правилам сопоставления сцены, документированных здесь, Urlhandlerscene должен быть запущен, но каждый раз, когда я запускаю приложение, используя связанный файл или «открыть» Deeplink, Defaultscene всегда запущен.>

Подробнее здесь: https://stackoverflow.com/questions/795 ... rnal-event
Ответить

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

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

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

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

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