2

アプリケーションの唯一のオプションとして、AirDrop を使用して共有シートを表示したいと考えています。

iOS 7 では、すべての共有タイプを( 、、 ...)のexcludedActivityTypesプロパティに簡単に追加できました。UIActivityViewControllerUIActivityTypeMessageUIActivityTypeMail

しかし、iOS 8 では、アプリの拡張機能により、ユーザーは追加の共有プロバイダーを表示する場合があります。AirDropのみを表示する方法はありますか?

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[[NSURL URLWithString:url]]
                                                                         applicationActivities:nil];

NSArray *excludedActivities = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook,
                                UIActivityTypePostToWeibo,
                                UIActivityTypeMessage, UIActivityTypeMail,
                                UIActivityTypePrint, UIActivityTypeCopyToPasteboard,
                                UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll,
                                UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr,
                                UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo];
4

3 に答える 3

3
class AirDropOnlyActivityItemSource : NSObject, UIActivityItemSource {

    /// The item you want to send via AirDrop.
    let item: AnyObject

    init(item: AnyObject) {
        self.item = item
    }

    func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
        /// Use an empty URL as placeholder to let iOS Share Sheet show the AirDrop only.
        return NSURL(string: "")!
    }

    func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
        return item
    }   
}
于 2016-04-12T12:53:40.137 に答える
-1

それは現在不可能です。これがユーザー/開発者にとって役立つ理由を説明して、Apple に拡張要求を提出する必要があります。

于 2015-02-23T20:24:50.213 に答える