Tôi gặp sự cố trong ứng dụng của mình. Sau khi nhận được một số thống kê, tôi tạo một tệp PDF và tôi muốn hiển thị UIActivityViewController với các tùy chọn "Mở trong iBooks" và "Gửi qua thư" chủ yếu (những người khác như "Mở trong Dropbox" sẽ là tuyệt vời).UIActivityViewController không hiển thị tùy chọn "Mở trong iBooks"
Vâng điều là trước khi cố gắng sử dụng UIActivityViewController, tôi đã sử dụng UIDocumentInteractionController, với đoạn mã sau:
self.docController = [UIDocumentInteractionController interactionControllerWithURL:url];
self.docController.delegate = self;
[_docController presentOpenInMenuFromRect:_openInIBooksButton.bounds inView:self.openInIBooksButton animated:YES];
đâu url là một con đường như /Documents/../statistics.pdf. Nó hoạt động, nó cho thấy một popover với các nút mở trong iBooks và mở trong Dropbox, nhưng không gửi qua thư. Bây giờ tôi đã thay đổi nó bằng mã sau:
NSArray* itemsToShare = [NSArray arrayWithObjects:pdfData, nil];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
activityVC.excludedActivityTypes = @[UIActivityTypeCopyToPasteboard]; //or whichever you don't need
[self presentViewController:activityVC animated:YES completion:nil];
Trường hợp pdfData là đối tượng NSData. Và nó hoạt động quá, nhưng bây giờ nó cho thấy tùy chọn gửi nó qua email, nhưng không phải là tùy chọn iBooks. Tôi sẽ đi vì tôi không tìm ra lý do của hành vi đó và tôi cần hai lựa chọn, iBooks và Mail.
Tôi không biết liệu nó có liên quan gì đến thực tế là UIDocumentInteractionController có đường dẫn kết thúc bằng .pdf và UIActivityViewController chỉ có đối tượng NSData. Nhưng tôi không thể tìm ra giải pháp cho điều đó.
Ai đó đã phát hiện ra sự cố đó trước đây?
Cảm ơn bạn rất nhiều.
Bạn đã thử 'presentOptionsMenuFromBarButtonItem' của UIDocumentInteractionController chưa? - Và tôi nghĩ rằng đối số 'initWithActivityItems' của UIActivityViewController cũng chấp nhận các mục NSURL trong mảng, điều đó có thể hữu ích. –
Cảm ơn bạn đã trả lời, nhưng nếu bạn đặt một url vào mảng, nó chỉ hiển thị gửi qua thư và xuất bản trên tùy chọn twitter, và nếu bạn nhấn vào gửi qua thư, nó sẽ mở trình soạn thư với văn bản chứa url, nhưng mà không đính kèm tập tin .. – diegomen
OK, đó chỉ là một ý tưởng! Điều gì về presentOptionsMenuFromBarButtonItem? –