Cordova插件定制应用程序类

时间:2018-05-17 19:42:54

标签: android cordova

我正在尝试为自定义sdk创建cordova插件。这个sdk使用蓝牙,有两个选项可供使用。

  1. 应用程序类必须从sdk扩展一个类,以便我可以使用sdk中的所有功能。
  2. 应用程序类必须从sdk实现一个类。这需要让蓝牙连接保持活力。之后我可以手动启动服务。
  3. 我认为我的问题是我必须创建一个自定义应用程序类。

    使用cordova插件可以做到我需要的吗?

1 个答案:

答案 0 :(得分:0)

您可以在插件中执行此操作:

plugin.xml

<platform name="android">
    <source-file src="src/MyPlugin.java" target-dir="src/my/plugin" />
    <source-file src="src/MyApplication.java" target-dir="src/my/plugin" />
</platform>

<edit-config file="AndroidManifest.xml" target="/manifest/application" mode="merge">
    <application android:name="my.plugin.MyApplication" />
</edit-config>

MyApplication.java

package my.plugin;

import android.app.Application;
import android.util.Log;

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        Log.d("MyApplication", "onCreate");
        super.onCreate();
    }
}

但是,我发现当插件在包含许多其他插件的项目中使用时,<edit-config>块容易出现问题,所以我使用了一个钩子脚本将name属性添加到{{1} <application>中的元素:

AndroidManifest.xml中,替换:

plugin.xml

with:

<edit-config file="AndroidManifest.xml" target="/manifest/application" mode="merge">
    <application android:name="my.plugin.MyApplication" />
</edit-config>

然后在你的插件目录中创建<hook type="after_prepare" src="hooks/android_app_name.js" />

hooks/android_app_name.js