【问题标题】:How to call another cordova plugin from an android cordova plugin?如何从 android cordova 插件调用另一个 cordova 插件?
【发布时间】:2015-08-12 10:05:27
【问题描述】:

在android中调用另一个cordova插件的最佳方法是什么?

我想要一个后台服务,它调用服务器获取一些信息,并且基于这些信息,我需要做一些事情,例如设置一个徽章。

我找到了一个 Cordova 后台服务插件,https://github.com/phpsa/cbsp 这可以很好地满足我的目的,并且可以与https://github.com/katzer/cordova-plugin-badge 等一起使用。

我想知道最好的方法是什么?我可以只包含这些类并直接从我的 java 代码中调用它们,还是需要其他一些东西?

寻找最佳方法的指导。

编辑:所以显然这不是一个真正的选择。我设法在我的 java 代码中包含了另一个插件并且我能够调用它,但是遇到了 CallbackContext 的问题,它是在从 javascript 调用插件时由cordova平台创建的。这基本上是徽章插件的设计特点

我发现实现所需功能的唯一方法是从其他插件获取代码并将其重构到我的后台服务中。

【问题讨论】:

    标签: android cordova cordova-plugins


    【解决方案1】:

    例如:
    public class OtherPlugin extends CordovaPlugin{ @Override protected void pluginInitialize() { YourClassPlugin yourClassPlugin = (YourClassPlugin)this.webView.getPluginManager().getPlugin("YourClassPlugin"); } }

    【讨论】:

      【解决方案2】:

      为什么你可以使用 javascript 作为粘合剂?只需将一个插件的结果传递给另一个。

      但是当您必须在本地执行此操作时,您应该通过 Intent 和 BroadcastReciever 执行此操作。 http://developer.android.com/guide/components/intents-filters.html

      请记住,接收插件必须定义某种隐式意图。查看教程,这里有你需要知道的一切。 http://www.vogella.com/tutorials/AndroidBroadcastReceiver/article.html

      【讨论】:

      • 我正在创建一个后台服务,即使在主应用程序本身未打开时它也会运行,这意味着使用 javascript 调用其他插件是不可行的。徽章插件提供了我需要的那种功能。最后我找到了一个第三方库,它给了我所有需要的选项。
      • 我也需要这样做,你能分享一下你最终使用的是哪个库吗?
      • @TarmoLehtonen - 您介意分享您使用的第 3 方库的名称吗?
      • 我用过这个:github.com/leolin310148/ShortcutBadger 到目前为止工作得很好
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      • 2018-07-13
      相关资源
      最近更新 更多