【发布时间】:2017-10-25 16:42:13
【问题描述】:
在我问我的问题之前,我将首先解释一些背景信息。
我们公司正在开发适用于 iOS 和 Android 的应用程序。我们的客户可以决定使用我们的应用程序(品牌)或将我们的功能集成到他们的应用程序中。因为我们的应用程序有一些复杂的算法和通信协议。出于这个原因,我们想为想要集成而不是使用我们的应用程序的客户提供一种 SDK。
当我们使用 BLE、NFC 和 GPS 时,我们决定让我们自己的应用程序原生化。问题是我们的许多客户已经拥有一个应用程序,在大多数情况下它将是一个混合应用程序。因此,“仅仅”为所有平台制作 SDK 几乎是不可能的,不仅要构建,还要维护。
要记住的另一件重要事情是,我们希望避免客户需要了解我们完整的通信流程,甚至更强大的是,我们不会将我们的算法或通信协议提供给其他人,因为这正是我们的应用/产品独一无二的原因此刻。
所以现在是具体的问题。是否可以将我们的功能作为一种 API 提供,以便其他应用程序可以像 API 一样使用我们应用程序的功能?这意味着我们的应用程序也需要安装在最终用户的智能手机上,但他们不需要单独使用它。这个想法是我们客户的应用程序像 API 一样与我们的应用程序通信,我们的应用程序与我们的硬件进行通信并将结果返回给我们客户的应用程序。请注意,应用程序的用户不应在前台看到我们的应用程序。 (我的想法来自一些需要“玩游戏”的游戏)
我知道有一种方法可以在应用之间交换数据(应用间通信),但这也可以像 API 一样使用吗?
【问题讨论】:
-
如果我理解得很好,这是用于在应用程序之间交换数据。这只是我们需要的解决方案的一部分。我们正在寻找一种方式,让其他应用程序可以使用我们应用程序的完整功能(如果可能)。例如。他们调用我们应用程序的 methodOne(params) 函数,因此我们的应用程序执行“复杂的事情”。方法执行后,如果方法执行成功,我们的应用程序应该给客户的应用程序一个响应。这避免了我们的客户需要了解我们的技术/方法,并且我们不需要为所有移动平台提供 SDK/代码。无论如何,谢谢。
-
所以您是说如果其他应用需要服务,比如说,使用 BLE 宣传数据,他们想要安装您的应用并使用您的功能?
-
您必须了解 react native,它是一个半混合平台,允许您将在 node.js 中创建的模块集成到您的本机应用程序中。所以让你的库执行你想要混淆的整个事情,并在你的 ios 和 android 应用程序中使用该模块,之后你必须提供与你的应用程序与其他人通信的方式,比如在 android 的情况下内容提供者或粘性服务的粘合剂