不能从[UIActivityViewController excludedActivityTypes]中排除UIActivityTypePostToFacebook

BRO*_*0UL 30 facebook objective-c uikit ios uiactivityviewcontroller

我希望创建一个UIActivityViewController将排除一些本地共享功能,包括Facebook和Twitter共享.但Facebook的份额仍然可用ShareExtention.

我创建了以下内容:

activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems  applicationActivities:applicationActivities];
Run Code Online (Sandbox Code Playgroud)

并通过设置排除的活动类型排除Facebook.

activityViewController.excludedActivityTypes = @[
                                                 UIActivityTypeAddToReadingList,
                                                 UIActivityTypeAssignToContact,
                                                 UIActivityTypePrint,
                                                 UIActivityTypeSaveToCameraRoll,
                                                 UIActivityTypeCopyToPasteboard,
                                                 UIActivityTypeAirDrop,
                                                 UIActivityTypePostToFacebook,
                                                 UIActivityTypePostToTwitter
                                                 ];
Run Code Online (Sandbox Code Playgroud)

在我的iPhone上运行时,尽管排除了Facebook图标,但仍会显示.

调查这是如何发生的我发现活动控制器的完成处理程序正在返回activityType = com.facebook.Facebook.ShareExtension,而不是UIActivityTypePostToFacebook.此外,当在活动控制器中选择更多按钮时,Facebook的切换与使用共享约定的其他应用程序一样.

为什么Facebook使用的shareExtention时间不是Twitter,为什么我不能使用排除的活动将其排除?

注意:我已经在多个设备上对此进行了测试,但该问题仅存在于运行8.1.3的一台设备上.

谢谢

sha*_*pta 5

试试这种方式

// sharing items in an array lets say sharingItems
NSArray *sharingItems = @[@"hello", @"how", @"are", @"You."];

//making UIActivityViewController object lets say avc
UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];

//exclude UIActivityTypePostToFacebook 
avc.excludedActivityTypes = @[UIActivityTypePostToFacebook];

//presenting UIActivityViewController in our case avc
[self presentViewController:avc animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

看下图,Facebook不包括在内

在图像Facebook不包括在内

当评论 avc.excludedActivityTypes = @[UIActivityTypePostToFacebook];Facebook再次在共享选项中可见时

评论avc.excludedActivityTypes = @ [UIActivityTypePostToFacebook]时;  Facebook再次出现在股票期权中


小智 0

//Hope this helps . This is how it is done in Swift 3.

  //  When Including the FB Option the code is as follow:

      func otherSharing() {

            let activityItem: [AnyObject] = [returnFinalImage() as AnyObject]


            let avc = UIActivityViewController(activityItems: activityItem as [AnyObject], applicationActivities: nil)
             avc.excludedActivityTypes = [UIActivityType.addToReadingList, UIActivityType.assignToContact, UIActivityType.print, UIActivityType.saveToCameraRoll, UIActivityType.copyToPasteboard, UIActivityType.airDrop, UIActivityType.postToTwitter]
            self.present(avc, animated: true, completion: nil)
        }

    //When Excluding the FB Option the code is as follow:

        func otherSharing() {

            let activityItem: [AnyObject] = [returnFinalImage() as AnyObject]


            let avc = UIActivityViewController(activityItems: activityItem as [AnyObject], applicationActivities: nil)
             avc.excludedActivityTypes = [UIActivityType.addToReadingList, UIActivityType.assignToContact, UIActivityType.print, UIActivityType.saveToCameraRoll, UIActivityType.copyToPasteboard, UIActivityType.airDrop, UIActivityType.postToFacebook, UIActivityType.postToTwitter]
            self.present(avc, animated: true, completion: nil)
        }

    //I have Added Screen shot : [![enter image description here][1]][1]


      [1]: https://i.stack.imgur.com/IGzqC.jpg
Run Code Online (Sandbox Code Playgroud)