Enabling Document Sharing

Panther·2021년 8월 12일
0
post-custom-banner

https://developer.apple.com/documentation/uikit/view_controllers/adding_a_document_browser_to_your_app/enabling_document_sharing

"Give users the ability to import and export documents from your app."

사용자에게 앱으로부터 문서를 임포트 및 익스포트할 수 있는 기능을 제공합니다.

Overview

문서 브라우저는 사용자가 공유 버튼을 탭하거나 드래그 앤 드롭 액션을 수행할 때 자동으로 사용자의 문서를 익스포트합니다.

문서를 임포트하려면, 앱은 앱이 지원하는 모든 문서 타입을 구체화해야 합니다. 문서 브라우저 설정 시 지원하는 문서 타입을 구체화하게 될 것입니다. 추가적인 정보는 Set the Supported Document Types를 살펴보시기 바랍니다.

Set the Supported Document Types
https://developer.apple.com/documentation/uikit/view_controllers/adding_a_document_browser_to_your_app/setting_up_a_document_browser_app#2904048
https://velog.io/@panther222128/Setting-Up-a-Document-Browser-App

Open a Shared Document

만약 사용자가 활동 뷰로부터 앱을 선택하면, 시스템은 앱을 launch하고 앱 딜리게이트의 application(_:open:options:) 메소드를 호출합니다. 문서를 드러내고 임포트할 수 있도록 문서 브라우저의 revealDocument(at:importIfNeeded:completion:) 메소드를 호출하기 위해 이 메소드를 구현해야 합니다. 아래 예시와 같습니다.

func application(_ app: UIApplication, open inputURL: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
    
    // Reveal / import the document at the URL
    guard let documentBrowserViewController = window?.rootViewController as? DocumentBrowserViewController else {
        fatalError("The root view is not a document browser!")
    }

    documentBrowserViewController.revealDocument(at: inputURL, importIfNeeded: true) { (revealedDocumentURL, error) in
        
        guard error == nil else {
            os_log("Failed to reveal the document at %@. Error: %@",
                   log: OSLog.default,
                   type: .error,
                   inputURL as CVarArg,
                   error! as CVarArg)
            return
        }
        
        guard let url = revealedDocumentURL else {
            os_log("No URL revealed",
                   log: OSLog.default,
                   type: .error)
            
            return
        }
        
        // You can do something
        // with the revealed document here...
        os_log("Revealed URL: %@",
               log: OSLog.default,
               type: .debug,
               url.path)
        
        // Present the Document View Controller for the revealed URL
        documentBrowserViewController.presentDocument(at: revealedDocumentURL!)
    }

    return true
}

만약 임포트가 성공적이면 시스템은 문서 브라우저 딜리게이트의 documentBrowser(_:didImportDocumentAt:toDestinationURL:) 메소드를 호출합니다.

See Also


Configuration

Setting Up a Document Browser App

앱에 문서 브라우저 뷰 컨트롤러를 추가합니다.

https://developer.apple.com/documentation/uikit/view_controllers/adding_a_document_browser_to_your_app/setting_up_a_document_browser_app
https://velog.io/@panther222128/Setting-Up-a-Document-Browser-App

Presenting Selected Documents

브라우저 뷰 컨트롤러를 통해 사용자에 의해 선택된 문서를 표시합니다.

https://developer.apple.com/documentation/uikit/view_controllers/adding_a_document_browser_to_your_app/presenting_selected_documents
https://velog.io/@panther222128/Presenting-Selected-Documents


post-custom-banner

0개의 댓글