[iOS] Xcode Shortcut Support, Intent definition 알아보기 (단축어앱 지원)

  [iOS] Xcode Shortcut Support, Intent definition 알아보기 (단축어앱 지원)


안녕하세요. 물먹고하자 입니다. 오늘은 iOS의 단축어앱(Shortcut)에 앱을 지원하는 방법에 대해 알아보았습니다.
Sample Github 주소 : https://github.com/kimjiwook/ShortcutSupportExample


  샘플


1. 신규 프로젝트 생성

2. Intent Definition File 생성

3. 내부 Intent 생성

3. Intent 이름을 지정해줍니다. (현재 글에서는 추가적인 상세정보는 입력하지 않았습니다.)

4. Info.plist의 NSUserActivityTypes Value 확인 (단축어 앱에서 해당 Value 로 들어옵니다.)

5. 추가소스코드
AppDelegate 기반
// AppDelegate 기반일때 Intent Check
    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
        
        // check
        if "ShortcutSupportFirstIntent" == userActivity.activityType {
            NotificationCenter.default.post(name: .alertShow, object: nil)
            return true
        }
        
        return false
    }

SceneDelegate 기반
// SceneDelegate 기반일때
    func scene(_ scene: UIScene, willContinueUserActivityWithType userActivityType: String) {
        // check
        if "ShortcutSupportFirstIntent" == userActivityType {
            NotificationCenter.default.post(name: .alertShow, object: nil)
        }
    }


  마무리

이번에 단축어 앱을 지원하는 기본적인 방법에 대해 알아보았습니다. 필자의 경우에는 스키마값을 통하여 단축어의 URL을 활용하여도 동일하게 작동가능하였으나, 스키마를 노출시키지 말아야하는 경우도 존재하기때문에 기능을 알고 있으면 도움이 될 것같습니다. 추가적으로 파라메터를 받는 형식 등 복잡하게도 사용이 가능한 것 같아. 해당 글을 기본으로 직접 만들어보는것도 좋을것 같습니다.

즐거운 코딩 되세요.

  참고사이트

https://medium.com/better-programming/ios-13-custom-intent-with-siri-dialog-909d5d78e9ed
https://developer.apple.com/documentation/sirikit/creating_an_intents_app_extension

댓글