NativeScript 限制

Posted

技术标签:

【中文标题】NativeScript 限制【英文标题】:NativeScript limitations 【发布时间】:2017-03-06 14:30:12 【问题描述】:

我正在评估不同的移动框架,我认为 nativescript 是一个不错的选择。但我不知道开发过程是否存在限制。例如,我对样式有限制(这不是那么重要),但我想知道将来我是否会受到限制并且不能使用某些本机功能或外部库。 谢谢!

【问题讨论】:

【参考方案1】:

我从 v0.90 开始就一直在使用 NativeScript。我为 NativeScript 编写了多个应用程序和 40 多个插件,因此我非常熟悉这些平台的来龙去脉。

这篇文章是 v6.50 的功能。

我只能想到几个限制;

工具有时还有很多不足之处,但是在很多情况下,使用 IDE 的支持使它比原生 CLI 更好。 有时错误并不总是从应用程序传播回屏幕/IDE - 因此您必须执行“adb logcat”之类的操作才能查看完整的错误日志,以查看被 CLI 过滤掉的错误。 本机服务(即后台服务) --- 最好将其编写为本机代码。 NS 运行时在运行时占用内存;因此,您通常希望使用尽可能小的内存占用的服务——我不会使用 Java/ObjC 以外的任何东西作为后台服务。 android 上的OpenGL 需要在单独的线程中运行,NS 默认在从任何本机调用返回时将您切换回主线程;这基本上会杀死直接 NS opengl 调用。然而,无论如何,最好用 Java 或 Kotlin 创建任何 OpenGL 的东西;然后让 NS 调用处理所有渲染的本机代码,所以这只是一个小麻烦。

除此之外,我想不出任何“真正的”限制;您可以完全访问本机平台,并且可以实际设置任何控件的样式,只要您知道如何通过本机调用进行操作;如果由于某种原因控件不支持正常的 css 样式。我和其他人在我们的应用程序中使用了许多 Android 和 ios 库。您可以轻松地重用原生 android/ios 组件,您可以完全访问原生 iOS 或 Android 应用程序可用的任何内容。

您可以查看 https://plugins.nativescript.rocks 以获取 NativeScript 社区中所有插件的列表。

【讨论】:

FWIW,用 VS Code 调试很不错。就我所见,使用 CLI 中包含的内容真的很糟糕。 iOS调试远胜Android; vsCode 也做得不错。但是,当您考虑 Android/ObjC 或任何其他主要语言中的工具时,NS 中的调试是一个严重的限制...... Android 上的 Livesync 正在改进,我们应该会在下一个版本中看到很大的改进。目前 IOS Livesync 速度非常快。 @Oluwaseye - LiveSync 在 v3.0 的两个平台上都有奇怪的问题,在很多情况下它并不那么可靠。我经常不得不从设备上删除应用程序并进行完全重建以使一切恢复正常。因此,请准备好有时进行全面重建。但是,我希望他们将来会解决这些问题。 3.x 有很多尚未完全稳定的重大变化。此外,Android 上的新调试内容现在比我去年讨论的要好得多。所以给予和接受。【参考方案2】:

我已经用 Nativescript 开发了一段时间了,虽然成品(应用程序)还不错,但开发的过程真的很痛苦。主要原因是 Nativescript 平台本身经常出现错误,它是 VSCode 的官方插件。

我目前正在开发 Nativescript 2.0.0,并且自发布以来一直在尝试更新到较新的版本,但总是有一些错误,例如 Node 的 ether 或 Android 的 Gradle,这只是众多错误之一我在平台上遇到的问题示例。我希望他们在不久的将来改进它。

【讨论】:

【参考方案3】:

目前,原生 api 可以从 JS 完全访问,但如果你愿意,你可以用原生语言做一些库,也可以从 JS 代码中调用它们,关于外部库,这取决于你是指原生库还是 JS 库,但有很多使用一些原生库在 JS 代码中完成的选项/插件,但如果不是 JS 插件,您可以使用原生库自己完成

【讨论】:

【参考方案4】:

与市场上可用的其他框架相比,社区支持较低。随着人们采用该框架,这应该会有所改善。我认为这是目前的限制。

是的,调试确实是一个限制。

【讨论】:

【参考方案5】:

在我看来,Nativescript 是最好的跨平台解决方案,但就像其他人所说的那样,可能存在局限性。除了后台服务,访问硬件可能有点棘手。不过,我一直在使用它来处理 BLE 设备,一旦你了解了如何与原生 API 交互,它就不会那么糟糕了。

【讨论】:

【参考方案6】:

我已经编写了一个 NS 应用程序(核心)。

一些缺点是:

性能 - 加载和运行时。我正在用 NS 应用替换 Android 原生应用(因为它是跨平台的),很少有客户抱怨新应用速度较慢且生涩……我同意。

NS 核心中的错误。我认为他们把自己分散得太细了。他们需要让他们的核心产品稳定并改进它(即让它更快)。

插件质量参差不齐,支持最少。在这里,NS 可以策划一些重要的插件并让人们为此付费。

是的,它是免费的 - 但这对我来说不是一个大问题 - 我更愿意为更精致的产品付费。

在一天结束时 - 产品有效 - 将我的应用放在应用商店中,并期待未来的改进。

【讨论】:

以上是关于NativeScript 限制的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Webview 中禁用滚动?

如何限制 Nativescript 仅针对 x86_64 进行编译?

如何在 Nativescript 中实现 XMPP 通信?

带有 nativeScript 的 Mapbox

NativeScript:标签上的最大行数

永久 NativeScript Mac 安装问题