Raj*_*ari 16 facebook objective-c ios uiactivityviewcontroller ios8
我的iOS是8.1.2,我正在使用UIActivityViewController进行社交分享.我点击一个按钮,让UIActivityViewController出现
- (IBAction)UIActivityTypeButtonClick:(id)sender {
NSString* text=@"I am sharing this text";
NSArray* sharedArray=@[text];
UIActivityViewController * activityVC=[[UIActivityViewController alloc]initWithActivityItems:sharedArray applicationActivities:nil];
activityVC.excludedActivityTypes=@[];
[self presentViewController:activityVC animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个
我收到消息,Twitter,邮件,WhatsApp和更多按钮.
单击更多我得到这个.
FACEBOOK
在哪里.我在我的iPhone上有facebook应用程序,并且在设置中也设置了我的ID.但Facebook永远不会出现在这里.Twitter确实如此.这是一个错误还是什么?请建议
谢谢
djr*_*djr 19
4月24日Facebook更新了他们的应用程序时我第一次看到这个.只要安装了Facebook应用程序,就可以将纯文本共享到Facebook.删除后,它再次可用.
如果您尝试与纯文本共享URL或图像,您将看到Facebook作为选项,但文本字段将为空白.图像或URL将毫无问题地附加.
我发布了一个示例项目,在github上重现了这个问题:
https://github.com/djr/UIActivityViewController-Facebook
这不是一个答案,但很明显这个问题是由Facebook应用程序引起的.
编辑:
它并不理想,但我创建了一个解决方法.不要忘记,您需要附加图像或URL才能使用.
检测用户是否安装了Facebook应用程序.如果他们这样做,那么给他们一些信息性的消息.
BOOL facebookIsInstalled = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fb://"]];
BOOL isUserLoggedInWithFacebook = [SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook];
if(isUserLoggedInWithFacebook && facebookIsInstalled)
{
// Explain that they have to copy and paste in order to share on Facebook
}
Run Code Online (Sandbox Code Playgroud)创建UIActivityItemProvider的子类并覆盖
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType
{
NSString *stringToShare = @"string to share";
if([activityType isEqualToString:UIActivityTypePostToFacebook] ||
[activityType isEqualToString:@"com.facebook.Facebook.ShareExtension"] ||
[activityType.lowercaseString rangeOfString:@"facebook"].length)
// Because who knows when they are going to change the activityType string?
{
// Automatically copy the text for them
[[UIPasteboard generalPasteboard] setString:stringToShare];
}
return stringToShare;
}
Run Code Online (Sandbox Code Playgroud)告诉用户他们必须粘贴到Facebook文本字段才能共享.
归咎于Facebook.
归档时间: |
|
查看次数: |
9707 次 |
最近记录: |