L'iframe delle configurazioni gestite è un'interfaccia utente incorporabile che consente agli amministratori IT di salvare, modificare ed eliminare le impostazioni di configurazione gestite di un'app. Ad esempio, puoi visualizzare un pulsante (o un elemento UI simile) nella pagina dei dettagli o delle impostazioni di un'app che apre l'iframe.
Azioni disponibili per gli amministratori IT dall'iframe

Impostare e salvare i profili di configurazione
L'iframe recupera e mostra lo schema delle configurazioni gestite per un'app specificata. All'interno dell'iframe, un amministratore IT può impostare le configurazioni e salvarle come profilo di configurazione. Ogni volta che un amministratore IT salva un nuovo profilo di configurazione, l'iframe restituisce un identificatore univoco denominato mcmId
.
In questo modo gli amministratori IT possono creare più profili per la stessa app.
Modifica profili di configurazione
L'iframe è in grado di mostrare i profili di configurazione salvati. Gli amministratori IT possono aggiornare le impostazioni all'interno di un profilo e salvare le modifiche.
Elimina profili di configurazione
Gli amministratori IT possono eliminare i profili di configurazione dall'iframe. Questa funzionalità è disattivata per impostazione predefinita.
Visualizzare l'iframe delle configurazioni gestite nella console
Genera un token web
Utilizza Enterprises.createWebToken
per generare un token web che identifichi l'azienda. Devi includere il token restituito, insieme ad altri parametri, quando esegui il rendering dell'iframe nella tua console. L'esempio seguente mostra come recuperare il token utilizzando la libreria client dell'API EMM di Google Play per Java.
public AdministratorWebToken getAdministratorWebToken(
String enterpriseId,
AdministratorWebTokenSpec tokenSpec) throws IOException {
return androidEnterprise
.enterprise()
.createWebToken(enterpriseId, tokenSpec)
.execute();
}
Eseguire il rendering dell'iframe
Ecco un esempio di come visualizzare l'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 che segue vengono elencati tutti i parametri disponibili per l'URL iframe.
Parametro | Obbligatorio | Descrizione |
---|---|---|
token |
Sì | Il token è stato 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 configurazione gestito. |
canDelete |
No | Se il valore è TRUE, viene attivato un pulsante nell'iframe che consente agli amministratori IT di eliminare il profilo delle configurazioni gestite. Se FALSE (valore predefinito), il pulsante è disattivato. |
locale |
No | Un tag corretto del linguaggio BCP 47, utilizzato per localizzare i contenuti nell'iframe. Se non specificato, il valore predefinito è en_US. |
Eventi iframe
Nell'ambito dell'integrazione, devi anche gestire i seguenti eventi.
Evento | Descrizione |
---|---|
onconfigupdated |
L'utente aggiorna un profilo di configurazioni gestite esistente o ne crea uno nuovo. Restituisce 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. Restituisce
un oggetto contenente:
{ "mcmId": The ID of the managed configurations profile. } |
L'esempio qui sotto 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, i profili di configurazione salvati vengono aggiornati automaticamente. Ad esempio, se lo sviluppatore rimuove un'opzione, questa verrà rimossa da tutti i profili di configurazione esistenti per l'app. Se lo sviluppatore aggiunge un'opzione, il valore predefinito per l'opzione (definito dallo sviluppatore) verrà aggiunto a tutti i profili di configurazione esistenti per l'app.
Applica le configurazioni gestite ai dispositivi degli utenti
Per scoprire come applicare le configurazioni gestite ai dispositivi degli utenti, consulta Applicare le configurazioni gestite.
Informazioni sul comportamento della selezione/deselezionazione
L'iframe delle configurazioni gestite ora consente agli amministratori IT di deselezionare esplicitamente le limitazioni dell'app di una configurazione gestita quando non sono necessarie. Si tratta di una modifica rispetto al comportamento precedente e potrebbe avere un impatto sulle limitazioni inviate alla tua app in base alla selezione dell'amministratore.
La sezione riportata di seguito illustra il comportamento dell'iframe delle configurazioni gestite con questo nuovo pattern deselezionato e cosa possono aspettarsi di essere inviati dagli sviluppatori come parte della loro configurazione gestita.
Utilizzo del valore predefinito per una restrizione dell'app
Se alle limitazioni dell'app di tipo bool, choice, numero intero, selezione multipla o stringa viene fornito un valore predefinito, quest'ultimo verrà applicato come valore della limitazione per le app quando gli amministratori salvano la configurazione gestita senza applicare le modifiche a tale limitazione.
Ad esempio, con il seguente schema di limitazione delle app:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"defaultValue": {
"type": "bool",
"valueBool": false
}
}]
Le limitazioni dell'app inviate al dispositivo saranno:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"value": {
"type": "bool",
"valueBool": false
}
}]
Senza utilizzare valori predefiniti per le limitazioni delle app
Se le limitazioni per le app di tipo bool, choice, intero, selezione multipla o stringa non vengono fornite con un valore predefinito, queste limitazioni non vengono incluse quando gli amministratori salvano la configurazione gestita senza applicare modifiche a tale limitazione.
Ad esempio, con il seguente schema di limitazione delle app:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool"
// defaultValue absent.
}]
Le limitazioni dell'app inviate al dispositivo saranno:
"restrictions": [
// Empty
]
Utilizzo dei pacchetti nello schema
Questa sezione si applica alle limitazioni relative alle app in set:
Avere almeno una limitazione app secondaria con un valore predefinito in una limitazione app associata a un bundle
Se all'interno della restrizione relativa all'app bundle
"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 dell'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 per le app secondarie senza valori predefiniti
Se all'interno della limitazione per app bundle tutte le limitazioni per le app secondarie di tipo bool, choice, numero intero, selezione multipla o string non vengono fornite con un valore predefinito, la limitazione per app bundle non viene inclusa quando gli amministratori salvano la configurazione gestita senza applicare le modifiche a tale limitazione.
Ad esempio, con il seguente schema di limitazione delle 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 dell'app inviate al dispositivo saranno:
"restrictions": [
// Empty
]
Utilizzo di bundle_array nello schema
Questa sezione si applica alle limitazioni dell'app bundle_array. Non è pertinente se le limitazioni per le app secondarie di tipo bool, choice, numero intero, selezione multipla o stringa hanno valori predefiniti.
Ad esempio, con il seguente schema di limitazione delle 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 nel gruppo di limitazioni dell'app bundle_array
Se è impostato almeno un gruppo bundle, la limitazione relativa all'app bundle_array viene inclusa quando gli amministratori salvano la configurazione gestita.
Le limitazioni dell'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
}
}]
}]
}]
Nessun gruppo di bundle nella restrizione relativa all'app bundle_array
La limitazione per app bundle_array non verrà inclusa quando gli amministratori salvano la configurazione gestita senza aggiungere un gruppo bundle. Le limitazioni dell'app inviate al dispositivo saranno:
"restrictions": [
// Empty
]