2014-10-06 9 views
0

내 앱에서 쇼핑 목록을 공유하고 싶습니다. 나는 두 가지 방법으로 쇼핑 목록을 공유하고 싶습니다의가 있다고 가정 해 봅시다 : 다른 장치에서 내 응용 프로그램을 가져올 것 schema urlAirDrop을 통해다른 형식의 데이터를 제공하기 위해 UIActivityViewController 사용

  1. 및 수신 응용 프로그램은 쇼핑 목록에 공유 항목을 추가 .
  2. 부터 email까지이며 을 쇼핑 목록의 항목을 HTML document으로 표 형식으로 보냅니다.

기본적으로 활동 유형이 AirDrop 또는 email인지 여부에 따라 공유 할 두 개의 서로 다른 문자열이 있습니다. 나는 조금 파고

url = [@"myapp://shoppinglist?apple=12&orange=5" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[url] applicationActivities:nil]; 
[self presentViewController:controller animated:NO completion:nil]; 

만의 방법에 따라 다른 내용을 전송하는 방법을 찾을 수 없습니다 : 아래의 코드도 email, 그것은 항상 schema URL가 퇴장했기 인 의미에서 작동하지 않습니다 나누는.

내 질문은 내가 여기서 설명한 내용을 UIActivityViewController으로 수행하는 것입니다. 또는 심지어 UIActivityViewController이 이것을위한 것이 든 아니면 이것을 할 수있는 유연성을 가지고 있든 상관없이 가능합니까?

답변

1

UIActivityItemSource에 부합하는 두 개의 객체를 만들고 공유하고 싶습니다. 여기서 하나는 HTML을 반환하고 다른 하나는 URL을 반환합니다. 그런 다음 해당 항목을 요청하는 대리자 콜백이 호출되면 선택한 활동 유형 (Facebook, Mail, AirDrop 등)을 확인하고 해당 항목이 적용되지 않으면 하나 또는 다른 반환 값이 nil이됩니다.

따라서 AirDrop의 경우 URL의 항목 소스 만이 0이 아닌 값을 반환합니다. airdrop sample code에서 UIActivityItemSource를 구현하는 방법에 대한 몇 가지 예를 살펴볼 수 있습니다.

+0

감사합니다. –