【问题标题】:Show all options in UIActivityViewController在 UIActivityViewController 中显示所有选项
【发布时间】:2016-10-18 03:43:17
【问题描述】:

我在创建本机共享对话框时遇到了一些问题。 我的目标是通过本机视图控制器共享我的产品链接,但我做不到。我正在尝试测试代码:

NSURL *google = [NSURL URLWithString:@"http://google.com"];
NSArray *activityItems = @[google];
UIActivity *activity = [UIActivity new];
UIActivityViewController *activityViewControntroller = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:@[activity]];
activityViewControntroller.excludedActivityTypes = @[];
[self presentViewController:activityViewControntroller animated:true completion:nil];

而且我没有 FB 和 twitter 图标。另一方面,我可以在 Safari 中看到它的两个图标,当我触摸它时,我看到“您需要在发布前配置您的帐户”。 所以,我想要同样的行为:所有最流行的社交网络的图标,如 VK、FB、twitter;像whatsapp、viber和电报这样的信使。如果其中一些未安装,我希望对话框“您必须先登录”并重定向到 safari(例如对于 FB)以登录或打开应用商店(例如对于电报或 viber)进行安装;否则我想用我的链接发布消息。 我看到它是这样的:从活动 vc 中排除所有类型,而不是强制添加我需要的所有图标并在手动单击时检查它们中的每一个。但在苹果文档中,我读到“你必须对原生项目使用原生行为而不是创建自定义”。那么,它会是正确的吗?还是有其他方法可以解决这个问题?

【问题讨论】:

  • Facebook 和 Twitter 只有在设备上已经安装时才​​会出现。
  • 但是在 safari 中我可以看到它,不管是否安装了它们

标签: ios objective-c facebook uiactivityviewcontroller


【解决方案1】:

试试这个

-(void)clickShare:(UIButton *)sender{
    NSArray * activityItems = @[[NSString stringWithFormat:@"Some initial text."], [NSURL URLWithString:@"http://www.google.com"]];
    NSArray * applicationActivities = nil;
    NSArray * excludeActivities = @[];

    UIActivityViewController * activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
    activityController.excludedActivityTypes = excludeActivities;

    [self presentViewController:activityController animated:YES completion:nil];
}

这段代码在我的项目中工作。

【讨论】:

  • 我的代码有什么不同?主要目标——显示所有具有描述行为的图标
猜你喜欢
  • 1970-01-01
  • 2013-04-15
  • 2014-01-17
  • 1970-01-01
  • 2014-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-03
相关资源
最近更新 更多