为啥 react-native 包使用原生 SDK 而不是 JS/web 版本?
Posted
技术标签:
【中文标题】为啥 react-native 包使用原生 SDK 而不是 JS/web 版本?【英文标题】:Why do react-native packages use native SDKs and not JS/web versions?为什么 react-native 包使用原生 SDK 而不是 JS/web 版本? 【发布时间】:2016-06-09 17:49:17 【问题描述】:纯信息问题,不是真正的问题,但是: 我记得按照说明进行操作,并看到有一些步骤可以让 react-native-fbsdk 正常工作。这些步骤涉及弄乱我的 android build.gradle 并添加 ios SDK 和 info.plist 等等。除此之外,为什么 Facebook 不使用 javascript SDK?不可能吗?如果是这样,为什么 Facebook 无法做到这一点?如果可能,他们为什么选择同时使用 android 和 iOS SDK?
【问题讨论】:
【参考方案1】:React Native 的一个价值支柱是,它不仅仅是嵌入在原生包装器中的 html 5 网站。它从字面上使用本机 API/组件,SDK 也是如此。从技术上讲,纯 JS SDK 可以针对浏览器体验进行优化,依赖于 window
或 document
,虽然功能可能能够在本地执行,但 RN 中提供的 polyfill 可能不足以覆盖实现。它进行 API 调用的方式也可能不同。视图也不同(RN 中没有 DOM),因此适用于任何 SDK 视图(按钮?)。
我刚刚完成了将 iOS SDK 转换为 React Native 包的过程,我觉得该实现将更符合原始 iOS SDK 的设计方式,因为它在幕后使用这些方法而不是纯 JS。 JS 只是调用本地方法,而不是接管方法。
只要我的 0.02 美元...
【讨论】:
以上是关于为啥 react-native 包使用原生 SDK 而不是 JS/web 版本?的主要内容,如果未能解决你的问题,请参考以下文章