在我的项目中,我始终使用SLComposeViewController与第三方应用程序共享内容,但是现在,当我将iPhone更新为iOS 11 beta时,此功能不再起作用。
SLComposeViewControllerCompletionHandler总是回调SLComposeViewControllerResultCancelled

为什么是这样?

最佳答案

我在iOS 11中遇到关于SLComposer的问题。但是我只是删除了检查行,显然,自己的SDK在内部对我进行了验证。

删除此行可用于任何SLServiceType:

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {

因此,发展您的逻辑。就我而言:
SLComposeViewController *mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

        [mySLComposerSheet setInitialText:@"#myInitialTextIsHere"];
        [mySLComposerSheet addURL:[NSURL URLWithString:strURL]];

        [mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {

            switch (result) {
                case SLComposeViewControllerResultCancelled:
                    NSLog(@"Post Canceled");
                    break;
                case SLComposeViewControllerResultDone:
                    NSLog(@"Post Sucessful");
                    break;

                default:
                    break;
            }
        }];

        [self presentViewController:mySLComposerSheet animated:YES completion:nil];

希望我有所帮助!

08-27 19:10