@capacitor-community/mdm-appconfig
v6.0.0
Published
Capacitor community plugin for reading app configurations written by a MDM (see appconfig.org) such as VMWare Workspace One.
Downloads
353
Maintainers
Readme
Maintainers
| Maintainer | GitHub | Social | | ---------------- | ------------------------------------------- | ------------------------------------------------------- | | Damian Tarnawsky | dtarnawsky | @damiantarnawsky |
Versions
| Plugin | Capacitor | Documentation | | ------ | --------- | ---------------------------------------------------------------------------------- | | 6.x | 6.x | README | | 5.x | 5.x | README | | 4.x | 4.x | README |
Installation
npm install @capacitor-community/mdm-appconfig
npx cap sync
Configuration
Android
Add the following line to your androidmanifest.xml
(under <application...>
):
<meta-data android:name="android.content.APP_RESTRICTIONS" android:resource="@xml/app_restrictions" />
Create an XML file named app_restrictions.xml
in the res/xml
directory to house your defined app restrictions, the format for the XML can be found here.
Here is an example app_restrictions.xml
that defines 3 strings (ionic-email
, ionic-user
, ionic-userid
):
<?xml version="1.0" encoding="utf-8"?>
<restrictions xmlns:android="http://schemas.android.com/apk/res/android">
<restriction android:key="ionic-email" android:title="Ionic Email" android:restrictionType="string" android:defaultValue="" />
<restriction android:key="ionic-user" android:title="Ionic User" android:restrictionType="string" android:defaultValue="" />
<restriction android:key="ionic-userid" android:title="Ionic Userid" android:restrictionType="string" android:defaultValue="" />
</restrictions>
Note: You must define keys in your app_restrictions.xml
to be able to read their value at runtime.
iOS
No additional configuration is required for iOS.
Usage
import { AppConfig } from '@capacitor-community/mdm-appconfig';
// Get a value:
const result = await AppConfig.getValue({ key: 'my.variable.name' });
console.log(result.value);
If the key cannot be found the promise will be rejected.
VMWare Workspace 1
When distributing an Application you can create an Assignment and under Application Configuration you can send a set of configuration keys that can be read by your application. The screenshot belows shows keys called ionic-email
, ionic-user
and ionic-userid
which Workspace 1 has will write with values related to the enrolled user.
API
getValue(...)
getValue(options: getValueOptions) => Promise<GetValueResult>
Get a value from App Config. On iOS, values are obtained from UserDefaults in com.apple.configuration.managed.
| Param | Type | Description |
| ------------- | ----------------------------------------------------------- | -------------------- |
| options
| getValueOptions | Options to get value |
Returns: Promise<GetValueResult>
Since: 1.0.0
Interfaces
GetValueResult
| Prop | Type | Description | Since |
| ----------- | ------------------- | ----------- | ----- |
| value
| string | The value | 1.0.0 |
getValueOptions
| Prop | Type | Description | Since |
| --------- | ------------------- | -------------------------- | ----- |
| key
| string | The key (or variable name) | 1.0.0 |