Phonegap config.xml from mendix

2
<gap:plugin name="com.darktalker.cordova.screenshot" source="npm" version="0.1.5" /> <gap:plugin name="cordova-plugin-app-version" source="npm" version="0.1.8" /> <gap:plugin name="cordova-plugin-battery-status" source="npm" version="1.1.2" /> <gap:plugin name="cordova-plugin-camera" source="npm" version="2.2.0" /> <gap:plugin name="cordova-plugin-console" source="npm" version="1.0.3" /> <gap:plugin name="cordova-plugin-contacts" source="npm" version="2.1.0" /> <gap:plugin name="cordova-plugin-crosswalk-webview" source="npm" version="2.1.0" /> <gap:plugin name="cordova-plugin-device" source="npm" version="1.1.2" /> <gap:plugin name="cordova-plugin-device-motion" source="npm" version="1.2.1" /> <gap:plugin name="cordova-plugin-device-orientation" source="npm" version="1.0.3" /> <gap:plugin name="cordova-plugin-dialogs" source="npm" version="1.2.1" /> <gap:plugin name="cordova-plugin-file" source="npm" version="4.2.0" /> <gap:plugin name="cordova-plugin-file-transfer" source="npm" version="1.5.1" /> <gap:plugin name="cordova-plugin-geolocation" source="npm" version="2.2.0" /> <gap:plugin name="cordova-plugin-globalization" source="npm" version="1.0.3" /> <gap:plugin name="cordova-plugin-inappbrowser" source="npm" version="1.4.0" /> <gap:plugin name="cordova-plugin-media-capture" source="npm" version="1.3.0" /> <gap:plugin name="cordova-plugin-media" source="npm" version="2.3.0" /> <gap:plugin name="cordova-plugin-network-information" source="npm" version="1.2.1" /> <gap:plugin name="cordova-plugin-secure-storage" source="npm" version="2.4.0" /> <gap:plugin name="cordova-plugin-splashscreen" source="npm" version="3.2.2" /> <gap:plugin name="cordova-plugin-statusbar" source="npm" version="2.1.3" /> <gap:plugin name="cordova-plugin-vibration" source="npm" version="2.1.1" /> <gap:plugin name="cordova-plugin-zip" source="npm" version="3.1.0" /> <gap:plugin name="cordova-plugin-whitelist" source="npm" version="1.2.2" /> <gap:plugin name="cordova-sqlite-evcore-extbuild-free" source="npm" version="0.8.0" /> <gap:plugin name="phonegap-plugin-barcodescanner" source="npm" version="6.0.2" /> <gap:plugin name="phonegap-plugin-push" source="npm" version="1.5.3" />   The mendix delivered Phonegap build, which can be downloaded from sprintr, contains a whole list of phonegap plugins. We ran into a problem with the google play store, where we discovered that the supported devices list was really short (only 300 out of 14.000 devices). My suspicion is that this is because of the plugins, as the plugins affect the AndroidManifest.xml as well, which limit the number of compatible devices (if anybody has experiences dealing with this, I would be glad to hear) My question now is the following: which of these plugins are needed in order to make the app work with mendix? I know mendix uses a couple (like cordova-plugin-secure-storage) in the phonegap app. But I can't imagine that the camera plugin or the geolocation plugin is needed by default. Is there any documentation available on this subject from mendix?
asked
6 answers
2

Lennard,

 

We've been using the Crosswalk plugin aswell, and noticed the same problem; when siging the app and uploading it in the Play Store, the number of devices drops drastically. That's because when using the Crosswalk plugin, you're only building an application for devices with x86 architecture. There's not a really easy way to circumvent this, however I did find another plugin which makes sure PhoneGap gives you an ARM version.

I haven't tested this myself, but it might do the trick.

https://github.com/MBuchalik/cordova-build-architecture

answered
1

As of today, January 23rd, we've released a new version of the hybrid app which contains a fix for this issue. Updating your hybrid app to the latest version (going through the publish step again) will fix it.

The cause is that the crosswalk plugin results in two binaries: one for x86 CPUs and one for ARM CPUs. For some reason, Adobe PhoneGap Build only returns the binary for x86 CPUs. But most mobile Android devices have ARM CPUs, resulting in a short list of supported devices.

answered
0

By default all plugins are enabled that might be used by Mendix, and this means you do not need to use all of them. The camera plugin is only needed if you're also using the camera widget for phonegap in your mendix app.

From my own expierence I'm asking myself what permissions does my app need, in regards to privacy. In example if you create a timesheet app to submit working hours, you don't need access to the camera. And people get suspicious if you do.

The main subjects in regards to mobile privacy are access to, contacts, geo-location, camera, microphone (sound) and push notifications. If you don't need any of these, you can remove them from the config.xml file. 

answered
0

If you need to reference the available plugins that phonegap has avaialble you can use the link here https://build.phonegap.com/plugins  to determine which plugins you may need for your app.  I removed a good portion of them from my config.xml file.  I would also make sure to recheck the plugins with each Mendix upgrade because sometimes additional plugins are added to the config.xml file with the releases.

answered
0

The row in the config.xml containing the cli version (for examle cli-6.3.0) can limit the number of devices aswell, as newer CLI versions require newer Android versions

answered
0

 Found the issue: it turned out to be the crosswalk-webview plugin. I started another forum post on the crosswalk-webview here: https://forum.mendix.com/link/questions/85764, as this plugin was vital for android performance, but removed our ability to target the number of android devices we wanted to target.

answered