#ios #swift #swiftui #storekit
Вопрос:
в iOS 14 StoreKit предлагает новый способ продвижения других приложений, SKOverlay
. наложение работает как лист, его видимость может управляться переменной состояния.
.appStoreOverlay(isPresented: $appStoreProductOverlay) {
SKOverlay.AppConfiguration(appIdentifier: "0000000000", position: .bottom)
}
Добавить наложение довольно просто, однако есть ли способ проверить, действительно ли пользователь загрузил приложение через SKOverlay? Или есть способ узнать, что приложение было установлено после отображения SKOverlay?
Один из способов, который я могу придумать, — установить таймер для canOpenURL
периодического вызова, возврат должен произойти true
после установки приложения. Интересно, есть ли лучший способ получить эту информацию, чем с помощью тянущего оценщика.
Ответ №1:
установите таймер внутри модели представления, и в конечном итоге я выбрал тот путь, по которому шел. Я использую a DispatchSourceTimer
и звоню canOpenURL
, чтобы проверить состояние установки приложения после отображения SKOverlay
.
Спасибо за напоминание Adi в комментарии, использование canOpenUrl()
будет работать только в том случае, если продвигаемые схемы приложений будут объявлены в вашей заявке plist
до ее отправки в магазин
Комментарии:
1. Важно отметить, что использование canOpenURL() будет работать только в том случае, если продвигаемые схемы приложений объявлены в вашем списке приложений перед отправкой в магазин ( developer.apple.com/documentation/uikit/uiapplication/… )