Виджет управления iOS 18, открывающий URL-адресIOS

Программируем под IOS
Anonymous
Виджет управления iOS 18, открывающий URL-адрес

Сообщение Anonymous »

У меня уже есть намерение приложения для iOS 17, которое работает с URL-адресом:

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

@available(iOS 16, *)
struct MyAppIntent: AppIntent {
static let title : LocalizedStringResource = "My App Inent"
static let openAppWhenRun   : Bool = true

@MainActor
func perform() async throws -> some IntentResult{
await UIApplication.shared.open(URL(string: "myapp://myappintent")!)
return .result()
}
}
Теперь, с iOS 18 и виджетами управления, я хочу создать кнопку виджета управления, которая просто открывает приложение с тем же URL-адресом. Однако код UIApplication не разрешен внутри расширений. Для этого Apple предлагает использовать OpenIntent, который показан здесь:
Ссылка на документацию
Пример кода Apple по ссылке:

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

import AppIntents

struct LaunchAppIntent: OpenIntent {
static var title: LocalizedStringResource = "Launch App"
@Parameter(title: "Target")
var target: LaunchAppEnum
}

enum LaunchAppEnum: String, AppEnum {
case timer
case history

static var typeDisplayRepresentation = TypeDisplayRepresentation("Productivity Timer's app screens")
static var caseDisplayRepresentations = [
LaunchAppEnum.timer : DisplayRepresentation("Timer"),
LaunchAppEnum.history : DisplayRepresentation("History")
]
}
Видео сеанса WWDC об этом не описывает подробно этот конкретный метод, а также этот пример кода немного сбивает с толку.
Итак, как я могу изменить этот код, чтобы просто открыть приложение по URL-адресу?

Подробнее здесь: https://stackoverflow.com/questions/787 ... pens-a-url

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