无法将 Facebook 和 Twitter 添加到 UIActivityViewController
Posted
技术标签:
【中文标题】无法将 Facebook 和 Twitter 添加到 UIActivityViewController【英文标题】:Unable to added Facebook and Twitter to UIActivityViewController 【发布时间】:2015-03-02 10:03:02 【问题描述】:尝试在社交媒体、电子邮件和消息上分享应用程序。
因为电子邮件和消息对我来说很好用。
但是 Facebook 和 twitter 并没有全部显示给UIActivityViewController
下面是我尝试的代码。
NSArray *excludeActivities = @[UIActivityTypeAirDrop,
UIActivityTypePostToFacebook,
UIActivityTypePostToTwitter];
UIActivityViewController *activityViewController =
[[UIActivityViewController alloc] initWithActivityItems:@[string, URL]
applicationActivities:nil];
activityViewController.excludedActivityTypes = excludeActivities;
[self presentViewController:activityViewController
animated:YES
completion:^
];
- (id)activityViewController:(UIActivityViewController *)activityViewController
itemForActivityType:(NSString *)activityType
if ([activityType isEqualToString:UIActivityTypePostToFacebook])
return NSLocalizedString(@"calling facebook", );
else if ([activityType isEqualToString:UIActivityTypePostToTwitter])
return NSLocalizedString(@"calling twitter", );
else
return nil;
@全部 请让我知道我需要做什么。
【问题讨论】:
在处理此问题时添加额外的点。如何向用户显示 facebook、twitter 未登录设置。它将有助于用户体验,如果我向最终用户显示关于打开 facebook、twitter 以启用设置以便在各自的社交网络中发布应用程序的警报消息。 【参考方案1】:为此,只需为此创建一个类。
SharingActivityProvider.h
#import <Foundation/Foundation.h>
@interface SharingActivityProvider : UIActivityItemProvider
@end
**SharingActivityProvider.m**
#import "SharingActivityProvider.h"
@implementation SharingActivityProvider
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType
// Create the default sharing string
NSString *shareString = @"";
// customize the sharing string for facebook, twitter, weibo, and google+
if ([activityType isEqualToString:UIActivityTypePostToFacebook])
shareString = [NSString stringWithFormat:@"Attention Facebook:%@", shareString];
else if ([activityType isEqualToString:UIActivityTypePostToTwitter])
shareString = [NSString stringWithFormat:@"Attention Twitter:%@", shareString];
else if ([activityType isEqualToString:UIActivityTypePostToWeibo])
shareString = [NSString stringWithFormat:@"Attention Weibo:%@", shareString];
return shareString;
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController
return @"";
@end
然后在使用下面的代码之后,假设按钮动作。
-(IBAction)shareAppTapped:(id)sender
SharingActivityProvider *sharingActivityProvider = [[SharingActivityProvider alloc] init];
NSArray *activityProviders = @[sharingActivityProvider,@"what ever text"];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityProviders applicationActivities:nil];
// tell the activity view controller which activities should NOT appear
activityViewController.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll];
activityViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:activityViewController animated:YES completion:nil];
// [self.btnShareApp setBackgroundColor:OnebackgroundColorTable];
【讨论】:
我尝试了 MVC 接近,这是一个赞赏。但它现在仍然在其中显示 facebook、twitter。我正在使用 xcode 6.1.1 ios 部署目标 8.1 你在哪个设备上测试这个? iPhone 6 ? 我正在使用 Iphone 5c。 [它是一个设备] 在那个设备上安装了脸书应用? 它没有安装。谢谢你。【参考方案2】:这里的一个错误是exclude
activities
还有facebook
和twitter
。因此它不会以任何方式显示。
注意 excludedActivityTypes
应该是您在控制器中不需要的。
例如应该是:
NSArray *excludeActivities = @[UIActivityTypePostToWeibo,
UIActivityTypeMessage,
UIActivityTypeAssignToContact,
UIActivityTypeSaveToCameraRoll,
UIActivityTypeAddToReadingList,
UIActivityTypePostToFlickr,
UIActivityTypePostToVimeo,
UIActivityTypePostToTencentWeibo];
【讨论】:
谢谢,即使它没有在 uiactivityviewcontroller 中显示 facebook 和 twitter 图标。以上是关于无法将 Facebook 和 Twitter 添加到 UIActivityViewController的主要内容,如果未能解决你的问题,请参考以下文章
Facebook Twitter Google line 登录之 fb登录
无法使用开放图形元标记从我的 React next.js 网站共享 Facebook/Twitter 内容
UIActivityViewController 和 facebook/twitter
Facebook、Twitter 和电子邮件无法使用 ShareKit
css 这会将facebook twitter和instagram图标添加到包含“facebook.com”,“twitter.com”和“instagram.com”的内容中的链接
css 这会将facebook twitter和instagram图标添加到包含“facebook.com”,“twitter.com”和“instagram.com”的内容中的链接