【问题标题】:IOS Sharing URL to Facebook doesn't show PreViewIOS 分享到 Facebook 的 URL 不显示预览
【发布时间】:2026-01-15 18:15:02
【问题描述】:

我的应用是使用 Xcode 6.1.1 和 IOS 8.+ iPhone 开发的。 我正在例如在 Facebook 上添加共享功能,并希望有一个 URL。它部分工作:显示文本,但不显示 URL 预览,以后也不会出现。在 Facebook 上发布后,会显示 URL 预览。

        NSString* newMessage = @"UCC Test";
        NSURL* newUrl =[NSURL URLWithString:@"http://itunes.apple.com/app/id378458261"];

           if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
        {
            SLComposeViewController *facebookSheet = [SLComposeViewController
                                                   composeViewControllerForServiceType:SLServiceTypeFacebook];

            [facebookSheet setInitialText:newMessage];
            [facebookSheet addURL:newUrl];
            [callerView presentViewController:facebookSheet animated:YES completion:nil];
        }

我尝试过使用 UIActivityViewController;并得到相同的结果。直接在 Facebook 上发布 URL 有效。

欢迎任何帮助或提示!

【问题讨论】:

    标签: ios xcode facebook share


    【解决方案1】:

    为了邀请用户,您可以在添加 facebook-sdk 后使用以下代码

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"", @"name",
                                   @"", @"caption",
                                   @"", @"description",
                                   @"http://itunes.apple.com/app/id378458261", @"link",
    
                                   nil];
    
    // Show the feed dialog
    [FBWebDialogs presentFeedDialogModallyWithSession:sharedFacebookHelper.session
                                           parameters:params
                                              handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error)
     {
         if (error)
         {
    
         }
         else
         {
             if (result == FBWebDialogResultDialogNotCompleted)
             {
    
    
    
             }
             else
             {
                 // Handle the publish feed callback
                 NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
    
                 if (![urlParams valueForKey:@"post_id"])
                 {
    
                 }
                 else
                 {
    
                 }
    
                            }
         }
     }];
    

    【讨论】:

    • 感谢您的回复。不幸的是,它没有帮助。我注意到 URL 预览是在窗口显示几秒钟后出现的。你遇到过这样的行为吗?