UIApplicationShortcutItem

Panther·2021년 8월 6일
0

https://developer.apple.com/documentation/uikit/uiapplicationshortcutitem

"An application shortcut item, also called a Home screen dynamic quick action, that specifies a user-initiated action for your app."

앱에서 사용자에 의해 초기화된 액션을 구체화하는 애플리케이션 단축키 아이템으로 홈 스크림 동적 퀵 액션이라고도 합니다.

Declaration

class UIApplicationShortcutItem : NSObject

Overview

3D 터치를 지원하는 기기에서 사용자는 홈스크린에서 앱의 아이콘을 눌러 퀵 액션을 호출하고, 퀵 액션의 제목을 선택합니다. 앱 딜리게이트는 퀵 액션을 받고 처리합니다.

초기화가 수행되는 동안 UIApplicationShortcutItem의 특징을 구체화해야 하며, 앱 객체에 등록하기 전에 수행되어야 합니다. 앱 객체에 등록한 퀵 액션은 변경이 불가능합니다.

Registering an Array of Dynamic Quick Actions With Your App

홈 스크린 동적 퀵 액션의 배열을 등록하려면 공유된 앱 객체의 shortcutItems 속성을 정의된 동적 홈 스크린 퀵 액션을 포함하는 NSArray 인스턴스로 설정해야 합니다.

Changing Your App’s Dynamic Quick Actions

홈 스크린 동적 퀵 액션을 변경시키려면, 앱 객체의 shortcutItems 배열을 교체시켜야 하며, 속성에 새 값을 설정함으로써 수행할 수 있습니다. 등록된 퀵 액션과 함께 작업하는 것에 대한 편의를 위해 이 클래스는 변경이 가능한 서브클래스인 UIMutableApplicationShortcutItem을 갖습니다. 아래 코드 스니펫은 동적 홈 스크린 퀵 액션의 제목을 변경시키고자 mutableCopy() 메소드를 사용하기 위한 한 가지 방법을 설명하고 있습니다. 이는 수정 가능한 퀵 액션에 따라 수행됩니다.

var shortcutItems = UIApplication.shared.shortcutItems ?? []
if let existingShortcutItem = shortcutItems.first {
    guard let mutableShortcutItem = existingShortcutItem.mutableCopy() as? UIMutableApplicationShortcutItem
        else { preconditionFailure("Expected a UIMutableApplicationShortcutItem") }
    guard let index = shortcutItems.index(of: existingShortcutItem)
        else { preconditionFailure("Expected a valid index") }

    mutableShortcutItem.localizedTitle = "New Title"
    shortcutItems[index] = mutableShortcutItem
    UIApplication.shared.shortcutItems = shortcutItems
}

Dynamic vs. Static Quick Actions

변경이 불가능할지라도 UIApplicationShortcutItem은 빌드 타임에 구체화한 정적 퀵 액션으로부터 구분될 수 있도록 동적으로 간주됩니다.

  • 이 클래스를 사용해서 홈 스크린 동적 퀵 액션을 정의하시기 바랍니다. 코드는 동적 퀵 액션을 생성하고, 이들을 런타임 시 앱 객체에 등록합니다.
  • Xcode 프로젝트의 Info.plist 파일에 있는 UIApplicationShortcutItems 배열에 홈 스크린 정적 퀵 액션을 정의하시기 바랍니다. Information Property List Key Reference에 있는 iOS Keys chapter에 설명되어 있습니다. 시스템은 앱 설치 시 정적 퀵 액션을 등록합니다.

사용자가 홈 스크린 앱 아이콘을 누를 때 시스템은 표시되는 퀵 액션의 수를 제한합니다. 표시된 퀵 액션 제목의 제한된 집합 내에서 정적 퀵 액션이 첫 번재로 보여지며, 리스트에서 가장 상위 위치에 있는 것부터 시작합니다. 만약 정적 아이템이 디스플레이에서 허용 가능한 수를 소비하지 않고, 이 클래스를 사용해 동적 퀵 액션 또한 정의하고 있다면, 하나 혹은 하나 이상의 동적 퀵 액션이 표시됩니다.

App Launch and App Update Considerations for Quick Actions

사용자가 하나의 홈 스크린 퀵 액션을 선택하면, 시스템은 앱을 launch하거나 재시작하고, UIKit은 앱 딜리게이트에 있는 application(_:performActionFor:completionHandler:) 메소드를 호출합니다. 호출이 필요할 때에만 호출될 수 있도록 하는 방법에 대한 정보는 UIApplicationDelegate에서 확인하시기 바랍니다.

UIApplicationDelegate
https://developer.apple.com/documentation/uikit/uiapplicationdelegate
https://velog.io/@panther222128/UIApplication-and-App-Delegate

사용자가 처음으로 앱을 설치하고 시작한 후, 홈 스크린 아이콘을 누르는 것은 앱의 정적 퀵 액션만을 표시합니다. 첫 번째 앱 실행 후 동적 퀵 액션 또한 표시됩니다.

사용자가 앱 업데이트를 설치하고 아직 실행은 하지 않았다면, 홈 스크린 아이콘을 누르는 것은 이전에 설치된 버전의 동적 퀵 액션을 보여줍니다. 이 시나리오를 처리하는 한 가지 방법은 퀵 액션의 userInfo 딕셔너리에서 앱 버전 정보를 제공하는 것입니다.

See Also


UIApplicationShortcutIcon

모양과 사용성을 향상시키기 위해 홈 스크린 퀵 액션과 선택적으로 연결시킬 수 있는 이미지입니다.

https://developer.apple.com/documentation/uikit/uiapplicationshortcuticon
https://velog.io/@panther222128/UIApplicationShortcutIcon

UIMutableApplicationShortcutItem

앱에서 사용자에 의해 초기화되는 설정 가능한 액션을 구체화하는 아이템입니다.(아이템은 변경 가능한 홈 스크린 동적 퀵 액션이라고도 부릅니다.)

https://developer.apple.com/documentation/uikit/uimutableapplicationshortcutitem
https://velog.io/@panther222128/UIMutableApplicationShortcutItem


0개의 댓글