react-native - 跨平台开发:如何缓解依赖 3rd 方插件实现原生功能的问题?
问题描述
我正在开始一个新项目,它将是一个跨平台的移动应用程序。我正在考虑使用带电容器的 ReactNative、NativeScript 或 Ionic 4。
关于所有这些技术,我注意到的一件事是自定义行为或对本机功能的访问需要插件。
虽然有各种各样的开源插件,但这可能是一个风险。例如,假设您的应用程序依赖于 iBeacon 插件。
- 如果没有 iBeacon 插件怎么办
- 如果有一个插件但它没有做你需要它做的事情怎么办
- 如果有插件但开发人员放弃了插件或无法解决问题等怎么办?
学习如何构建插件是您唯一的选择吗?
我们是一家小公司,因为我们忙于主要产品,所以没有太多时间在插件上。
解决方案
过去几个月我一直在开发 Ionic 应用程序,并遇到了您提到的问题。简而言之,如果没有插件或插件有问题,你就完蛋了,这意味着你必须自己构建(或修复)插件。
Ionic 的好处是它建立在属于 Apache 的 Cordova 之上。他们有相当多的插件集合,可以在 Ionic 中完美运行并且维护良好。它们涵盖了主要功能。
Ionic self 有一个带有快速说明的社区插件列表,你可以在这里找到它。他们中的大多数工作正常,有些是错误的。他们还拥有高级访问权限(称为 Premier),可让您访问官方插件和支持,但这非常昂贵。
好消息是:一旦你知道怎么做,构建你自己的插件就不难了(如果你知道 JavaScript 和原生代码的话)。但是,要找到教程并不容易,特别是知道 Ionic 版本之间存在很大差异。本教程是一个很好的起点(查看底部的参考书目)。
不是在谈论原生,而是在谈论 Ionic 中的插件:有时我也使用 Angular 插件,大多数情况下是成功的。关于 JS 库,有些是开箱即用的(比如 HammerJS),有些是我无法让它们工作的(比如 jQuery)。
推荐阅读
- python - 找到总和最大的 idx
- primeng - 如何在 PrimeNg 的下拉列表中换行?
- asp.net-core - 如何在 ABP 框架中设置默认语言?
- javascript - 按实数值降序排列数组js
- firebase-authentication - 在 OTP 上的 firebase 中检查身份验证
- docker - 如何获取 docker 镜像中使用的用户 uid 和名称
- symfony - 为什么 Symfony 生成带有内核名称的路由?
- php - 在 ajax 调用中传递图像并使用 php 读取
- powerbi - 基于两列 DAX 汇总值
- lightgbm - LIghtGBM 的 SHAP 汇总图