使用 Phonegap 将数据传递到本机 Android 应用程序上的 Android 后台服务?

Pass data to Android Background Service on a Native Android Application using Phonegap?

所以这是背景故事:

phonegap 应用程序是一个在线电子商店,它有一个插件(我的团队创建的)用于在订单完成后打印收据。一切正常,但 Phonegap 上的打印时间过长。事实上,每次打印需要 5-6 秒,这并不好 -- 客户希望打印过程更快,减少到 1-2 秒。

但是,这使用 Phonegap 是不可能的,所以我不得不求助于使用本机应用程序。我在示例代码的帮助下创建了一个本地应用程序。 尤里卡!打印只用了 1-2 秒!

附带说明一下,Phonegap 和 Native App 使用相同的打印机库——打印代码完全是一样,只是Native App的性能比Phonegap的要好。

问题出在这里:

1。第三方本机应用程序应仅 运行 在后台(因此 Android 后台服务)

2。 Phonegap 应该能够将订单数据传递给此第三方原生应用的 Android 后台服务,以便它能够打印收据。

所以问题是:我该怎么做?

我目前尝试使用的是 phonegap 插件 (Link)。它可以工作,但是,它会打开第三方应用程序,这一点都不好。我可以在它打开后立即关闭它,但客户想要的是它根本不打开,以免与他们的客户混淆。

非常感谢任何帮助!如果对需要做什么有任何澄清,请添加评论。谢谢!

检查 this article 解释 jsnative code 调用(或插件开发)。

创建一个测试应用程序,它将执行上面文章中解释的所有步骤。实施后,您将了解如何执行 jsnative code 调用。

现在,将打印机库添加到您的代码(本机包装器),然后添加您的打印代码(在一个函数中,再次在本机代码中)。从 js 调用此函数。就是这样。

我担心无法在 cordova/phonegap 中创建后台服务,但您可以使用 BroadcastReceiver 或 IntentService 实现支持(本机)应用程序(在没有 UI 的情况下在后台运行)由您从 cordova 插件调用的(显式)意图触发。 有关 < Service (Deep Guide), IntentServices, BroadcastReceiver > (Native) and invoking intent using cordova webIntent(插件)的更多信息。

我想 this 教程可能对您有所帮助。