添加/删除我的cordova插件

时间:2018-05-03 14:13:19

标签: android cordova npm cordova-plugins

我为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

1 个答案:

答案 0 :(得分:0)

目前,我能做的最好的事情是删除该edit-config并为应用程序名称的编辑和npm uninstall的执行创建钩子