关于iOS 11 beta中的“SLComposeViewController”
在我的项目中,我总是使用SLComposeViewController与第三方应用程序共享内容,但是现在,当我将iPhone更新到iOS 11测试版时,它不再工作。而SLComposeViewControllerCompletionHandler总是回调SLComposeViewControllerResultCancelled。 为什么?关于iOS 11 beta中的“SLComposeViewController”
iOS 11通过设置应用删除了第三方帐户(如Facebook和Twitter)的访问权限。我目前正在同样的事情上挣扎。
您现在必须将功能与第三方的SDK集成。推特在这里有一个迁移页关于要采取的步骤: -
https://dev.twitter.com/twitterkit/ios/migrate-social-framework
我还没有找到有关如何迁移的其他社交网络的具体说明,但可以肯定地说,将要求其第三方SDK。
没有更容易出的现成的社交共享:-(
我在iOS中11.关于SLComposer问题,但我只是删除了检查线,显然在自己的SDK使得validacoes 。我在内部
删除此行提供任何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];
我希望我能帮上忙!
这是有效的 - 如果用户没有登录,作曲家仍然会弹出,但随后出现“您需要登录”的提醒。 – davedavedave
在将部署目标设置为iOS11时,此解决方案是否适用于(iPhone)模拟器中的人员?它不会崩溃或任何东西,但我没有得到我得到的IOS10和以下的动作表,并在控制台它说'ViewDidAppear,但远程VC失败,解雇'和'表未呈现,调用过早完成? –
仍在使用我的twitter,如下所示。在iPad Air和iOS 11.2.2上运行。 –
对于iOS 11这一行:
([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
总是返回NO
我检查更换,如果用户已经安装了Facebook应用程序:
static NSString *const canOpenFacebookURL = @"fbauth2";
+将它添加到LSApplicationQueriesSchemes
in plist
-(BOOL)isFacebookAppInstalled {
NSURLComponents *components = [[NSURLComponents alloc] init];
components.scheme = canOpenFacebookURL;
components.path = @"/";
return [[UIApplication sharedApplication]
canOpenURL:components.URL];
}
然后只是拨打电话SLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
像往常一样,马修斯多明戈斯如何描述相同。但有了这个检查,至少你知道这个用户已经安装了Facebook应用程序。
SLComposeViewController对我来说工作得很好,就像以前一样。查看Matheus发布的答案。 – Leon