我为Android应用程序制作了一个cordova插件,但与其他插件不同,这个插件只使用Application(App.java)而不是CordovaPlugin类。
当我第一次尝试使用cordova插件添加它时,它工作正常。当我尝试使用cordova插件rm删除它时,它不会从node_modules中删除该文件夹并在package.json中保留插件依赖项名称。此外,它从属于另一个插件的清单中删除了一些代码(我已经看到这是plugin.xml中编辑文件的连续性,我需要将应用程序名称添加到清单中)如果我尝试再次安装我会得到一个错误(因为它仍然保持node_modules依赖),除非我更新插件的版本。
这是我的plugin.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="com.test.plugin.applicationTest" version="1.0.0" platform = "Android">
<name>codova-app-plugin</name>
<description>Test</description>
<author>test</author>
<license>Apache 2.0</license>
<keywords>cordova, application</keywords>
<platform name="android">
<config-file parent="/*" target="res/xml/config.xml">
<feature name="applicationTest">
<param name="android-package" value="com.test.plugin.applicationTest" />
</feature>
</config-file>
<source-file src="src/android/App.java" target-dir="src/com/test/plugin/applicationTest" />
<config-file target="AndroidManifest.xml" parent="/*">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</config-file>
<edit-config file="AndroidManifest.xml" target="/manifest/application" mode="merge">
<application android:name="com.test.plugin.applicationTest.App"/>
</edit-config>
</platform>
</plugin>
为什么不删除node_modules?以及如何避免删除AndroidManifest标签?
编辑: 如果我删除edit-config而不是使用钩子,我将不会删除AndroidManifest标签,但它们不会被执行或抛出EACCESS错误。此外,它保留了node_modules依赖项。
<hook type="after_plugin_install" src="scripts/nameManifest.js" /> -- won't execcute
<hook type="before_plugin_uninstall" src="scripts/uninstallPackage.sh" /> -- EACCESS error
答案 0 :(得分:0)
目前,我能做的最好的事情是删除该edit-config并为应用程序名称的编辑和npm uninstall的执行创建钩子