如何在反应原生应用程序中安装 facebook sdk?
Posted
技术标签:
【中文标题】如何在反应原生应用程序中安装 facebook sdk?【英文标题】:How do I install the facebook sdk in a react native application? 【发布时间】:2017-05-10 22:47:16 【问题描述】:我遵循了here 的说明,但我无法通过第 5 步连接应用程序委托来工作,因为说明是用 Objective C 编写的,而我的 AppDelegate 文件是用 Swift 编写的。
我试过了:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
// Add any custom logic here.
return true
func application(_ application: UIApplication, open url: URL, options: (UIApplicationOpenURLOptionsKey & id)) -> Bool
let handled: Bool = FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey], annotation: options[UIApplicationOpenURLOptionsAnnotationKey])
// Add any custom logic here.
return handled
产生此构建错误的原因:
The following build commands failed:
CompileSwift normal x86_64 /Users/kevinchiang/jh-mobile/ios/JustHive/Appdelegate.swift
CompileSwiftSources normal x86_64 com.apple.xcode.tools.swift.compiler
(2 failures)
我不熟悉 Swift 和 Obj-C,所以我认为我的 Swift 代码可能有问题。
【问题讨论】:
你的第二个函数是错误的。我认为您想使用此方法application(_:open:options:) 而不是您那里的方法。让我知道它是否有效 你能告诉我你的意思吗?我试过 func application(_ application: UIApplication, _:open:options: (UIApplicationOpenURLOptionsKey & id)) 但它没有用 我的回答对你有帮助吗??如果它确实将其标记为正确的 ty。 【参考方案1】:在你的函数中,你知道参数选项的类型是 (UIApplicationOpenURLOptionsKey & id)
它不存在你应该在 Swift 中寻找它的等价物,这是一个 application(_:open:options:),你可以看到 options 是一本字典包含多个元素才能正确使用 FB sdk 您必须使用与选项注释和选项源应用程序对应的键才能正确使用它。
因此,回答您的问题应该将您的第二个功能更改为以下功能。告诉我进展如何。
func application(_ app: UIApplication,
open url: URL,
options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool
let handled: Bool = FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: options[.sourceApplication], annotation: options[.annotation])
return handled
您还可以简化上面的代码,删除变量句柄,它看起来像这样。
func application(_ app: UIApplication,
open url: URL,
options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: options[.sourceApplication], annotation: options[.annotation])
【讨论】:
以上是关于如何在反应原生应用程序中安装 facebook sdk?的主要内容,如果未能解决你的问题,请参考以下文章
当设备中安装了 FB Native App 时,无法使用 Facebook ios sdk v3 进行授权