我正在尝试为自定义sdk创建cordova插件。这个sdk使用蓝牙,有两个选项可供使用。
我认为我的问题是我必须创建一个自定义应用程序类。
使用cordova插件可以做到我需要的吗?
答案 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