Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios can';t从[UIActivityViewController excludedActivityTypes]中排除UIActivityTypePostToFacebook_Ios_Objective C_Facebook_Uikit_Uiactivityviewcontroller - Fatal编程技术网

Ios can';t从[UIActivityViewController excludedActivityTypes]中排除UIActivityTypePostToFacebook

Ios can';t从[UIActivityViewController excludedActivityTypes]中排除UIActivityTypePostToFacebook,ios,objective-c,facebook,uikit,uiactivityviewcontroller,Ios,Objective C,Facebook,Uikit,Uiactivityviewcontroller,我希望创建一个UIActivityViewController,它将排除一些本机共享功能,包括Facebook和Twitter共享。但是Facebook的共享仍然可以作为ShareExtension使用 我创建了以下内容: activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivitie

我希望创建一个
UIActivityViewController
,它将排除一些本机共享功能,包括Facebook和Twitter共享。但是Facebook的共享仍然可以作为
ShareExtension
使用

我创建了以下内容:

activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems  applicationActivities:applicationActivities];
并通过设置排除的活动类型排除Facebook

activityViewController.excludedActivityTypes = @[
                                                 UIActivityTypeAddToReadingList,
                                                 UIActivityTypeAssignToContact,
                                                 UIActivityTypePrint,
                                                 UIActivityTypeSaveToCameraRoll,
                                                 UIActivityTypeCopyToPasteboard,
                                                 UIActivityTypeAirDrop,
                                                 UIActivityTypePostToFacebook,
                                                 UIActivityTypePostToTwitter
                                                 ];
在我的iPhone上运行时,尽管被排除在外,Facebook图标仍会出现

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

为什么Facebook使用的是
ShareExtension
,而Twitter没有,为什么我不能使用排除的活动排除它

注意:我已经在多个设备上测试过这个问题,但是这个问题只存在于运行8.1.3的一个设备上

谢谢

试试这个方法

// 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];
如下图所示,不包括Facebook

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


在iOS 8.1.1上有相同的问题。看起来这可能是苹果方面的错误。看起来你正在看到Facebook共享扩展(它是Facebook iOS应用程序的一部分)。您是否安装了Facebook应用程序(以及哪个版本)?是的,它是Facebook共享扩展。实际上,我在问题中提到了这一点。但问题是,如果Facebook使用共享扩展,则无法禁用Facebook共享,因此:excludedActivityTypes=@[UIActivityTypePostToFacebook等不可用。我正在运行Facebook 30.0版,5月7日更新。(我允许自动更新)我的应用程序中也有类似的情况。看起来在iOS 8.3上是固定的,在iOS上也是如此
// 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];