关于「;SLComposeViewController“;在iOS 11beta中
在我的项目中,我总是使用关于「;SLComposeViewController“;在iOS 11beta中,ios,ios11,social-media,slcomposeviewcontroller,Ios,Ios11,Social Media,Slcomposeviewcontroller,在我的项目中,我总是使用SLComposeViewController与第三方应用程序共享内容,但现在,当我将iPhone更新到iOS 11 beta版时,这就不再有效了 SLComposeViewControllerCompletionHandler始终回调SLComposeViewControllerResultCancelled 这是为什么?iOS 11删除了通过设置应用程序访问第三方帐户(如Facebook和Twitter)的权限。我现在也在为同样的事情挣扎 现在必须将该功能与第三方的S
SLComposeViewController
与第三方应用程序共享内容,但现在,当我将iPhone更新到iOS 11 beta版时,这就不再有效了
SLComposeViewControllerCompletionHandler
始终回调SLComposeViewControllerResultCancelled
这是为什么?iOS 11删除了通过设置应用程序访问第三方帐户(如Facebook和Twitter)的权限。我现在也在为同样的事情挣扎 现在必须将该功能与第三方的SDK集成。Twitter在此处有一个迁移页面,介绍要采取的步骤:- 我还没有找到关于如何迁移其他社交网络的具体说明,但可以肯定地说,这将需要他们的第三方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];
我希望我能帮上忙!对于iOS 11这一行:
([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
总是返回否
我将其替换为“检查用户是否安装了Facebook应用程序”:
static NSString *const canOpenFacebookURL = @"fbauth2";
+将其添加到plist中的LSApplicationQueriesSchemes
-(BOOL)isFacebookAppInstalled {
NSURLComponents *components = [[NSURLComponents alloc] init];
components.scheme = canOpenFacebookURL;
components.path = @"/";
return [[UIApplication sharedApplication]
canOpenURL:components.URL];
}
然后只需调用SLComposeViewController*composeVC=[SLComposeViewController composeviewcontrollerforservice类型:SLServiceTypeFacebook];
和往常一样,Matheus Domingos的描述也是如此。但通过这项检查,至少你知道用户已经安装了facebook应用程序。SLComposeViewController对我来说工作正常,就像以前一样。请查看Matheus发布的答案。不幸的是,自给出此答案以来,Twitter已经停止了对Twitter工具包的支持,这意味着ns现在更难有一个与Twitter集成的简单最佳实践:。看起来Twitter的API端点现在是预期的替代方案:这很有效-如果用户未登录,编写器仍会弹出,但会在其上显示“您需要登录”警报。此解决方案是否适用于(iPhone)中的用户模拟器何时将部署目标设置为iOS11?它不会崩溃或发生任何事情,但我没有得到iOS10及以下版本的操作表,控制台上显示
viewdide,但远程VC失败,取消了和工作表,调用过早完成?仍在为我使用twitter,如图所示在iPad Air和iOS 11.2.2上运行。@matheus这不是LinkedIn的工作,我知道还有其他的吗way@SatheeshkumarNaidu您用哪种方式?这是有效的,但是它是否“安全”呢?为什么SLServiceType常量被否决,但SLComposeViewController不推荐?为什么仍然有效