2016-10-18 28 views
0

我在创建本地共享对话框时遇到了一些麻烦。 我的目标是通过本地视图控制器共享我的产品链接,但我无法做到。我正在尝试测试代码:显示UIActivityViewController中的所有选项

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)以登录或打开appstore(例如,用于电报或viber)来安装;否则我想用我的链接发布消息。 我看到它是这样的:从活动vc中排除所有类型,而不是强制添加我需要的所有图标,并在手动点击时检查它们中的每一个。但在苹果文档中,我读到“你必须使用本地行为来代替原生项目”。那么,它会是正确的吗?或者还有其他方法可以解决这个问题?

+0

只有在设备上已经安装了Facebook和Twitter的情况下才会发布。 – Nilesh

+0

但是在safari中我可以看到它,尽管它们是否已安装它们 –

回答

0

试试这个

-(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]; 
} 

这个代码在我的项目工作。

+0

与我的代码有什么不同?主要目标 - 显示具有描述行为的所有图标 –

相关问题