https://developer.apple.com/documentation/foundation/nsuseractivity/creating_a_user_activity_object
"Identify key user interactions and include the information to restore them later."
핵심 사용자 상호작용을 확인하고 나중에 복구시키기 위한 정보를 포함시킵니다.
사용자가 이후에 계속 진행할 수도 있거나 다른 기기에서 진행할 수도 있을 중요한 순간에 NSUserActivity
객체를 생성하고, 시스템에 등록하시기 바랍니다. 예를 들어 사용자가 웹 페이지 열기, 노래 재생, 혹은 앱에서 중요한 작업을 수행할 때 사용자 활동 객체를 생성할 수 있습니다. 또한, 더 나은 스팟라이트 검색 결과를 제공하기 위해 사용할 수도 있습니다. 그러나 사용자 활동 객체는 앱에서 발생하는 모든 작업을 추적하기 위한 방법으로써 의도된 것은 아닙니다. 혹은 적은 편집이나 중요하지 않은 변경사항에 대해서도 의도된 것이 아닙니다.
NSUserActivity
객체를 생성하는 경우 활동의 타입을 식별할 수 있는 스트링을 구체화해야 합니다. 활동 타입 스트링은 보통 reverse-DNS 포맷으로 사용합니다. 예를 들어 사용자가 웹 페이지를 열면 com.myCompany.myApp.OpenWebPage와 같은 활동 스트링을 구체화하게 될 것입니다. Information Property List 파일에 NSUserActivityTypes
키를 포함시켜 앱이 지원하는 활동 타입을 선언하시기 바랍니다. 시스템은 앱이 주어진 사용자 활동 객체를 처리할 수 있는지에 대한 여부를 결정하기 위해 해당 키에서 정보를 사용하게 됩니다.
사용자 활동 객체를 정의할 때 아래처럼 하시기 바랍니다.
isEligibleForHandoff
, isEligibleForSearch
, isEligibleForPublicIndexing
이 해당 속성입니다.contentAttributeSet
키워드 혹은 webpageURL
속성을 설정해야 합니다. 그렇게 함으로써 스팟라이트가 객체를 인덱싱할 수 있습니다.becomeCurrent()
메소드를 호출해서 시스템에 사용자 활동 객체를 등록합니다.시스템은 사용자 활동 객체를 앱으로부터 개발자 팀 ID에 연결시킵니다. 활동을 계속할 때 시스템은 주어진 활동 타입을 지원하는 앱이자 활동의 소스앱과 같은 개발자 팀 ID를 갖는 앱을 탐색합니다. 개발자 팀 ID에 활동 객체를 엮는 것은 생성하는 활동을 다른 경쟁 앱이 가로채지 못할 것을 보장해줍니다. 팀 ID와 앱을 연결시키려면, 앱 스토어를 통해 앱을 배포하거나 개발자 ID로 해당 앱에 서명하시기 바랍니다.