나는 사용자 정의 UIActivityProviders와 함께 UIActivityViewController
을 사용하고 있습니다. 내 제공자는 NSString
, UIImage
및 맞춤 데이터 개체를 반환합니다. UIActivityViewController excludedActivityTypes
과 Apple의 기본 활동 유형을 설정하여 공유하지 않을 활동을 제외합니다.UIActivityViewController 공유 확장 활동 제한
내가 좋아하지 않는 것은 액티비티 유형으로 빌드되지 않은 제시된 UIActivityViewController에 나타나는 앱입니다. 애플 리케이션이 iOS 8에 텍스트와 이미지 데이터를 처리 할 수 있다는 정보를 제공했기 때문에 이러한 정보가 표시된다고 가정합니다. Flickr, Evernote 및 FaceBook의 공유 확장이 그 예입니다. 이러한 활동에는 하드 코딩을 원하지 않는 자체 활동 URL 유형이 있습니다.
내 액티비티 공유에서 이러한 앱을 원하지 않는 이유는 대부분 제대로 작동하지 않아 사용자에게 좋지 않은 경험을 제공하고 애플리케이션 성능이 좋지 않을 수 있다는 것입니다. 실제로 이러한 앱은 자신이 주장하는 데이터를 처리하지 못합니다. 예를 들어, Evernote는 항상 빈 포스트 대화 상자를 표시합니다. 페이스 북의 공유 확장 기능과 같이 일부는 데이터 유형을 처리 할 수 없다면 로그 오류까지도 (실제로?).
모든 타사 공유 확장 프로그램을 차단할 수 있습니까?
- 만 애플의 활동에 내장 된 공유하고 내 사용자 지정 활동
- 3 자 개 확장 오프 를 손 망치 허용 : 응답이 아니오 인 경우
- 확장 프로그램에서 인식 할 수 없도록 모든 콘텐츠를 맞춤 클래스에 넣습니다. Facebook에서 기록 된 오류가 발생합니다.
는, 내가 단지 2 옵션이 보인다
난이도는 initWithPlaceholderItem:(id)placeholderItem
에서 비롯됩니다. 확장 기능에서 처리 할 수 있다고 말한 일반적인 NSString 또는 UIImage를 다시 전달하지만 게시 할 때 오류가 나타나지 않도록하거나 로그하지 않는 경우가 많습니다. 이것은 공유 확장을 감지하는 끔찍한 장소가 될 것입니다.
사용자에게 가장 유연한 공유 경험을 제공하고 싶지만 타사 구현이 좋지 않은 비용을 제공하고 싶습니다.
우리는 코드를 보여주고 싶지만 단지 보일러 플레이트가 아닌 것을 생각할 수 없다는 것을 알고 있습니다. UIActivityController
fodder.