Uploaded image for project: 'Apache Cordova'
  1. Apache Cordova
  2. CB-6481

Add unified hooks support for cordova app and plugins

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Implemented
    • None
    • None
    • None

    Description

      As per "Proposal: hooks support for plugins" dev mail thread discussion

      Hi, I have an idea how we can add more flexibility to plugin developers.

      Note, right now we have Application Developers – someone who use Cordova for developing applications and Plugin Developers – someone who creates plugins so that Application Developers can use them. For Application Developers we expose hooks so that they can customize their build/package/etc process. I want us to provide similar sort of flexibility to Plugin Developers so that they can go beyond of <source/>, <framework/> tags and get mechanism to add custom installation, build logic required by a plugin. Example usage will include: downloading/compiling additional binaries, marking source file to be copied to output dir, changing target build platform, etc. At present time the steps described could be only achieved by hooks manually added by Application Developer, but the right way is to allow Plugin Developer to expose this as part of plugin definition.

      Example configuration could look like
      ```
      <script type="postinstall" src="scripts/postinstall.js" />
      <script type="preinstall" src="scripts/preinstall.js" />
      <script type="install" src="scripts/install.js" />
      ```
      beforeinstall/preinstall – run before plugin is installed
      install/postinstall/afterinstall – run after plugin is installed
      uninstall – run after plugin is uninstalled

      Attachments

        Issue Links

          Activity

            People

              sgrebnov Sergey Grebnov
              sgrebnov Sergey Grebnov
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: