There\'s something I find quite confusing about phonegap/cordova plugins.
For example I can run
cordova plugin add cordova-plugin-whitelist
The answer is very long. Please read.
What are exactly the differences between all these different plugin installations? Which one should I use in the end?
Up until this date (2015-11-05) and for a bit longer, there are subtle differences in the different plugins. Cordova and Phonegap are working to remove that. For all intensive purposes you should use the *NEW* plugin repository
NEW Plugin Repository: http://cordova.apache.org/plugins/
NEW CORE Plugin List: http://cordova.apache.org/docs/en/5.1.1/cordova/plugins/pluginapis.html (Note: those plugin not on this list are not core.)
I want the same plugins to be available on all the other developers computers, in the exact same version to have a stable and reproductible environment (and the CLI does not seem to specify the version...). Should I include anything of my /plugins folder to Git?
No. For now, just use the current NPM system. You may want to use the --save
option so that you retain a copy of the plugin you are using. CAUTION: this has side effects. Read the Cordova docs for more information.
NOTE FOR TEAMS: Many frameworks want you to use the "leading" edge, sold as "latest and greatest". This has many, many side effects. Cordova and Phonegap both have an versioning option. Learn to use it.
This will help: http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/
I Quote:
Here is the breakdown.
For the whitelist system used with Cordova, there is actually four (4) unrelated systems in place.
- legacy-whitelist plugin (avoid) was the previous whitelist system. It is provided for backwards compatibilty only.
- whitelist plugin (Cordova's) is the new whitelist system. It is required as of Cordova Tools 4.0.0. It has three (3) parts.
- W3's CSP (Content Security Policy Level 2) is a whitelist system that is implemented webpage by webpage. It is required as of Cordova Tools 5.0.0. It has sixteen (16) parts.
- Apple's ATS (App Transport Security) is a whitelist system exclusive to iOS. It required as of iOS9. It is implemented in the Info.plist
Use:
cordova plugin add cordova-plugin-whitelist --save
Source
<gap:plugin name="cordova-plugin-whitelist"npm />
Use this one sometimes it wont work if you use this code
<gap:plugin name="cordova-plugin-whitelist" spec="1.1.0" />
You should start reading about the difference between PhoneGap and Cordova (there is none) - more information can be found here: Difference between PhoneGap and Cordova.
That the command cordova plugin add cordova-plugin-console
doesn't modify the config.xml
must be an issue on your system. I just tried it, to be sure, this works in 5.1.1 as expected and it does.
config.xml
after fresh build without adding plugins:
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.example.com" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="DisallowOverscroll" value="false" />
<preference name="EnableViewportScale" value="false" />
<preference name="KeyboardDisplayRequiresUserAction" value="true" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="GapBetweenPages" value="0" />
<preference name="PageLength" value="0" />
<preference name="PaginationBreakingMode" value="page" />
<preference name="PaginationMode" value="unpaginated" />
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage" />
</feature>
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<name>test</name>
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
<author email="dev@cordova.apache.org" href="http://cordova.io">
Apache Cordova Team
</author>
<content src="index.html" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
</widget>
After adding cordova plugin add cordova-plugin-console
there are three new lines at the bottom:
<feature name="Console">
<param name="ios-package" value="CDVLogger" />
</feature>
gap:
is a PhoneGap setting for your config.xml
cordova plugin add [PLUGIN_ID]@[VERSION]