2月5日后如何在Swift原生应用中实现Facebook点赞按钮?
2月5日后Swift原生应用实现Facebook点赞按钮的解决方案
各位好,针对你问的2月5日后如何在Swift原生应用里实现Facebook点赞按钮的问题,首先得明确一个关键信息:Facebook已经彻底弃用了原生点赞按钮(Native Like Button),从2月6日开始它完全失效了。官方的说明如下:
Native Like Button:专为移动应用设计的Native Like Button从Facebook SDK 4.28及以上版本开始将不再受支持。旧版本SDK仍可使用Native Like Button,但自2月6日起,Native Like Button将不再受支持。2月6日后,原生点赞的对话框将不再显示,点击任何Native Like Button都不会产生任何操作。
也就是说,之前依赖Facebook SDK原生组件实现的点赞按钮,现在点击不会有任何反应,也不会弹出点赞对话框,没法再用了。
可行替代方案:用WKWebView嵌入网页版点赞按钮
目前官方推荐的替代方式是在应用内嵌入WKWebView,加载Facebook提供的网页版点赞组件,具体实现步骤如下:
1. 在视图控制器中集成WKWebView
下面是一个完整的示例代码,展示如何在Swift视图控制器中添加网页版点赞按钮:
import UIKit import WebKit class LikeButtonViewController: UIViewController, WKUIDelegate { private var webView: WKWebView! override func loadView() { let webConfig = WKWebViewConfiguration() webView = WKWebView(frame: .zero, configuration: webConfig) webView.uiDelegate = self view = webView } override func viewDidLoad() { super.viewDidLoad() // 替换成你需要用户点赞的Facebook页面/帖子的URL let targetFacebookUrl = "https://www.facebook.com/你的目标页面名称" // 包含Facebook网页点赞按钮的HTML内容 let likeButtonHtml = """ <!DOCTYPE html> <html> <body style="margin:0; padding:0;"> <div id="fb-root"></div> <script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v18.0"></script> <div class="fb-like" data-href="\(targetFacebookUrl)" data-layout="standard" data-action="like" data-size="large" data-share="true"> </div> </body> </html> """ // 将HTML加载到WebView中 webView.loadHTMLString(likeButtonHtml, baseURL: nil) } }
2. 自定义与注意事项
- 把代码中的
你的目标页面名称替换为实际的Facebook页面或帖子的完整URL; - 可以通过修改HTML里的
data-layout(布局样式)、data-size(按钮大小)、data-share(是否显示分享按钮)等参数,调整点赞按钮的外观; - 确保你的应用开启了网络访问权限,iOS 9及以上默认支持HTTPS请求,无需额外配置App Transport Security例外(如果加载的是HTTPS地址的话)。
其他选项:用Facebook Share SDK实现互动
如果不一定需要严格的“点赞”按钮,也可以考虑使用Facebook的Share SDK,让用户将内容分享到自己的Facebook动态,同样能达到用户互动的效果,但这和直接点赞的体验不同,可以根据你的应用需求来选择。
内容的提问来源于stack exchange,提问作者Carlo
相关产品推荐
相关产品推荐

