Alcune app progettate per le aziende includono impostazioni integrate chiamate gestite configurazioni che gli amministratori IT possono configurare da remoto. Ad esempio, un'app può puoi scegliere di sincronizzare i dati solo quando il dispositivo è connesso al Wi-Fi. Fornitura Gli amministratori IT possono specificare le configurazioni gestite e applicarle è un requisito per tutti i set di soluzioni. Esistono due modi per supportare le configurazioni gestite nella console EMM:
- Crea la tua UI e applica le impostazioni tramite
managedConfiguration
nel ApplicationPolicy. - Aggiungi l'iframe delle configurazioni gestite alla console (istruzioni dettagliate
sotto) e applica le impostazioni tramite
managedConfigurationTemplate
nel ApplicationPolicy
L'iframe delle configurazioni gestite è un'interfaccia utente incorporabile che consente agli amministratori IT Salvare, modificare ed eliminare le impostazioni di configurazione gestita di un'app. Ad esempio, puoi ad esempio, per mostrare un pulsante (o un elemento UI simile) nei dettagli di un'app nella pagina di impostazioni che apre l'iframe.
Azioni disponibili per gli amministratori IT dall'iframe
![iframe mcm](https://developers-dot-devsite-v2-prod.appspot.com/static/android/work/play/emm-api/images/mcm_iframe.png?authuser=4&hl=it)
Impostare e salvare i profili di configurazione
L'iframe recupera e visualizza lo schema di configurazioni gestite per un
specificata per l'app. All'interno dell'iframe, un amministratore IT può impostare le configurazioni e salvare
come profilo di configurazione. Ogni volta che un amministratore IT salva
di configurazione standard, l'iframe restituisce un identificatore univoco denominato mcmId
.
In questo modo, gli amministratori IT possono creare più profili per lo stesso
dell'app.
Modifica profili di configurazione
L'iframe è in grado di visualizzare i profili di configurazione salvati. Gli amministratori IT possono aggiornare le impostazioni di un profilo e salvare le modifiche.
Elimina profili di configurazione
Gli amministratori IT possono eliminare i profili di configurazione dall'iframe. Questa funzionalità è è disabilitata per impostazione predefinita.
Aggiungi l'iframe alla console
Genera un token web
Utilizza enterprises.webTokens.create
per generare un token web che identifichi l'azienda e impostare iframeFeature
su
MANAGED_CONFIGURATIONS
. Devi includere il token restituito, insieme ad altri
durante il rendering dell'iframe nella console.
Eseguire il rendering dell'iframe
Di seguito è riportato un esempio di come eseguire il rendering dell'iframe delle configurazioni gestite:
<script src="https://apis.google.com/js/api.js"></script>
<div id="container" style="width: 1000px; height: 1000px"></div>
<script>
gapi.load('gapi.iframes', function() {
var options = {
'url': 'https://play.google.com/managed/mcm?token=web_token&packageName=app_package_name',
'where': document.getElementById('container'),
'attributes': { style: 'height:1000px', scrolling: 'yes'}
}
var iframe = gapi.iframes.getContext().openChild(options);
});
</script>
Parametri URL
Nella tabella seguente sono elencati tutti i parametri disponibili per l'URL iframe.
Parametro | Obbligatorio | Descrizione |
---|---|---|
token |
Sì | Il token restituito da Enterprises.createWebToken . |
packageName |
Sì | L'ID prodotto dell'app. Ad esempio:
com.google.android.gm . |
mcmId |
No | L'ID di un profilo di configurazioni gestite. |
canDelete |
No | Se TRUE, attiva un pulsante nell'iframe che consente all'IT di eliminare il profilo di configurazioni gestite. Se FALSE (valore predefinito), il pulsante è disabilitato. |
locale |
No | Un modello ben strutturato BCP 47 language utilizzato per localizzare i contenuti nell'iframe. In caso contrario specificato, il valore predefinito è en_US. |
Eventi iframe
Nell'ambito dell'integrazione dovresti anche gestire i seguenti eventi.
Evento | Descrizione |
---|---|
onconfigupdated |
L'utente aggiorna un profilo di configurazioni gestite esistente o ne crea uno nuovo
uno. Viene restituito un oggetto contenente:
{ "mcmId": The ID of the managed configurations profile. "name": The name of the updated or newly created managed configurations profile. } |
onconfigdeleted |
L'utente elimina un profilo di configurazioni gestite esistente. Questo restituisce
un oggetto contenente:
{ "mcmId": The ID of the managed configurations profile. } |
L'esempio seguente mostra come ascoltare onconfigupdated
, ad esempio:
iframe.register('onconfigupdated', function(event) {
console.log(event);
}, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER);
Aggiornamenti allo schema di configurazioni gestite di un'app
Se lo sviluppatore aggiorna lo schema di configurazione gestita di un'app, viene salvato i profili di configurazione vengono aggiornati automaticamente. Ad esempio, se lo sviluppatore rimuove un'opzione, quest'ultima verrà rimossa da tutta la configurazione esistente profili per l'app. Se lo sviluppatore aggiunge un'opzione, viene usato il valore predefinito (definita dallo sviluppatore) verrà aggiunta a tutta la configurazione esistente profili per l'app.
Applica profili di configurazione al criterio
Ogni profilo di configurazione viene salvato come un mcmId
univoco. Per applicare un
di configurazione del profilo a un criterio, specifica mcmId
in
managedConfigurationTemplate
Informazioni sul comportamento di selezione/deselezione
L'iframe delle configurazioni gestite ora consente agli amministratori IT di deselezionare esplicitamente le restrizioni dell'app di una configurazione gestita quando non ne hanno bisogno. Questo è un cambiamento rispetto al comportamento precedente e potrebbe influire su quali restrizioni vengono inviati alla tua app in base alla selezione dell'amministratore.
La sezione seguente illustra il comportamento dell'iframe delle configurazioni gestite questo nuovo pattern di deselezione e ciò che gli sviluppatori possono aspettarsi dall'invio e la configurazione gestita.
Utilizzare il valore predefinito per una limitazione per le app
Se le limitazioni delle app di tipo bool, choice, numero intero, selezione multipla o stringa sono forniti un valore predefinito, quest'ultimo verrà applicato come valore della limitazione per le app quando gli amministratori salvano la configurazione gestita senza e l'applicazione di eventuali modifiche alla restrizione dell'app.
Ad esempio, con il seguente schema di limitazioni dell'app:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"defaultValue": {
"type": "bool",
"valueBool": false
}
}]
Le limitazioni delle app inviate al dispositivo saranno:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"value": {
"type": "bool",
"valueBool": false
}
}]
Senza utilizzare i valori predefiniti per le limitazioni delle app
Se le limitazioni delle app di tipo bool, choice, numero intero, selezione multipla o stringa non presentano un valore predefinito, queste limitazioni delle app non verranno inclusa quando gli amministratori salvano la configurazione gestita senza applicare alcuna modifica a quella limitazione dell'app.
Ad esempio, con il seguente schema di limitazioni dell'app:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool"
// defaultValue absent.
}]
Le limitazioni delle app inviate al dispositivo saranno:
"restrictions": [
// Empty
]
Utilizzo di bundle all'interno dello schema
Questa sezione si applica al set limitazioni relative alle app:
Avere almeno una limitazione per le app secondarie con un valore predefinito in una limitazione per l'app del bundle
Se all'interno del set limitazione per almeno una delle limitazioni per le app secondarie di tipo bool. choice, numero intero, selezione multipla o stringa sono forniti un valore predefinito, quest'ultimo verrà applicato come del valore della limitazione per l'app, mentre quelli senza valori predefiniti verranno esclusi quando gli amministratori salvano la configurazione gestita senza applicare alcuna modifica. limitazione dell'app.
"restrictions": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key_1",
"restrictionType": "bool",
"defaultValue": {
"type": "bool",
"valueBool": false
}
},
{
"key": "bool_key_2",
"restrictionType": "bool"
// defaultValue absent.
}
]
}]
Le limitazioni delle app inviate al dispositivo saranno:
"restrictions": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key_1",
"restrictionType": "bool",
"value": {
"type": "bool",
"valueBool": false
}
},
// The bool_key_2 child app restriction is not included.
]
}]
Tutte le limitazioni delle app secondarie senza valori predefiniti
Se all'interno del set limitazione dell'app per tutte le limitazioni delle app secondarie di tipo bool choice, numero intero, selezione multipla o stringa non presentano un valore predefinito, il set la limitazione per le app non sarà inclusa quando gli amministratori salvano la configurazione gestita senza applicare alcuna modifica alla restrizione dell'app.
Ad esempio, con il seguente schema di limitazioni dell'app:
"restrictions": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key_1",
"restrictionType": "bool",
// defaultValue absent.
},
{
"key": "bool_key_2",
"restrictionType": "bool"
// defaultValue absent.
}
]
}]
Le limitazioni delle app inviate al dispositivo saranno:
"restrictions": [
// Empty
]
Utilizzo di bundle_array all'interno dello schema
Questa sezione riguarda bundle_array limitazioni delle app. Non è pertinente se le limitazioni dell'app secondaria per tipo bool choice, numero intero, selezione multipla o stringa hanno valori predefiniti.
Ad esempio, con il seguente schema di limitazioni dell'app:
"restrictions": [{
"key": "bundle_array_key",
"restrictionType": "bundleArray",
"nestedRestriction": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key",
"restrictionType": "bool",
"defaultValue": {
"type": "bool",
"valueBool": true
}
}]
}]
}]
Avere almeno un gruppo di bundle nella limitazione dell'app bundle_array
Se è presente almeno un set gruppo impostato, bundle_array verrà inclusa quando gli amministratori salveranno la configurazione gestita.
Le limitazioni delle app inviate al dispositivo saranno:
"restrictions": [{
"key": "bundle_array_key",
"restrictionType": "bundleArray",
"nestedRestriction": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key",
"restrictionType": "bool",
"value": {
"type": "bool",
"valueBool": true
}
}]
}]
}]
Se un gruppo di pacchetti o una restrizione viene salvato, tutte le limitazioni/tutti i bundle
in bundle_array
verrà impostato con la seguente precedenza:
- il valore scelto dall'amministratore
- il valore predefinito elencato per quel bundle/limitazione.
- il valore visualizzato nell'iframe in assenza di un valore predefinito
Nessun gruppo di bundle nella limitazione per l'app bundle_array
L'elemento bundle_array la limitazione per le app non sarà inclusa quando gli amministratori salvano la configurazione gestita senza aggiungere un set gruppo. Le limitazioni delle app inviate al dispositivo saranno:
"restrictions": [
// Empty
]