Der iFrame für verwaltete Konfigurationen ist eine einbettbare Benutzeroberfläche, mit der IT-Administratoren die verwalteten Konfigurationseinstellungen einer App speichern, bearbeiten und löschen können. Sie können beispielsweise auf der Detailseite einer App eine Schaltfläche oder ein ähnliches UI-Element einblenden, über das der iFrame geöffnet wird.
Aktionen, die IT-Administratoren über den iFrame zur Verfügung stehen
Konfigurationsprofile festlegen und speichern
Mit dem iFrame wird das Schema der verwalteten Konfigurationen für eine angegebene App abgerufen und angezeigt. Innerhalb des iFrames kann ein IT-Administrator Konfigurationen festlegen und als Konfigurationsprofil speichern. Jedes Mal, wenn ein IT-Administrator ein neues Konfigurationsprofil speichert, gibt der iFrame eine eindeutige Kennung namens mcmId
zurück.
Dadurch können IT-Administratoren mehrere Profile für dieselbe Anwendung erstellen.
Konfigurationsprofile bearbeiten
Im iFrame können gespeicherte Konfigurationsprofile angezeigt werden. IT-Administratoren können die Einstellungen in einem Profil aktualisieren und ihre Änderungen speichern.
Konfigurationsprofile löschen
IT-Administratoren können Konfigurationsprofile aus dem iFrame löschen. Diese Funktion ist standardmäßig deaktiviert.
iFrame für verwaltete Konfigurationen in der Konsole aufrufen
Webtoken generieren
Verwenden Sie Enterprises.createWebToken
, um ein Webtoken zu generieren, das das Unternehmen identifiziert. Sie müssen das zurückgegebene Token zusammen mit anderen Parametern beim Rendern des iFrames in der Konsole angeben. Das folgende Beispiel zeigt, wie Sie das Token mit der Google Play EMM API-Clientbibliothek für Java abrufen.
public AdministratorWebToken getAdministratorWebToken(
String enterpriseId,
AdministratorWebTokenSpec tokenSpec) throws IOException {
return androidEnterprise
.enterprise()
.createWebToken(enterpriseId, tokenSpec)
.execute();
}
iFrame rendern
Hier ist ein Beispiel dafür, wie der iFrame für verwaltete Konfigurationen gerendert wird:
<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>
URL-Parameter
In der folgenden Tabelle sind alle verfügbaren Parameter für die iFrame-URL aufgeführt.
Parameter | Erforderlich | Beschreibung |
---|---|---|
token |
Ja | Das von Enterprises.createWebToken zurückgegebene Token. |
packageName |
Ja | Die Produkt-ID der App, z. B. com.google.android.gm . |
mcmId |
Nein | Die ID eines verwalteten Konfigurationsprofils. |
canDelete |
Nein | Falls TRUE, wird eine Schaltfläche im iFrame aktiviert, mit der IT-Administratoren das verwaltete Konfigurationsprofil löschen können. Bei FALSE (Standardwert) ist die Schaltfläche deaktiviert. |
locale |
Nein | Ein korrekt formatiertes BCP 47-Tag, das zum Lokalisieren der Inhalte im iFrame verwendet wird. Wenn keine Angabe erfolgt, wird der Standardwert en_US verwendet. |
iFrame-Ereignisse
Sie sollten im Rahmen Ihrer Integration auch die folgenden Ereignisse verarbeiten.
Veranstaltung | Beschreibung |
---|---|
onconfigupdated |
Der Nutzer aktualisiert ein vorhandenes verwaltetes Konfigurationsprofil oder erstellt ein neues. Dadurch wird ein Objekt zurückgegeben, das Folgendes enthält:{ "mcmId": The ID of the managed configurations profile. "name": The name of the updated or newly created managed configurations profile. } |
onconfigdeleted |
Der Nutzer löscht ein vorhandenes verwaltetes Konfigurationsprofil. Dadurch wird ein Objekt zurückgegeben, das Folgendes enthält:{ "mcmId": The ID of the managed configurations profile. } |
Das folgende Beispiel zeigt, wie auf onconfigupdated
gewartet wird:
iframe.register('onconfigupdated', function(event) {
console.log(event);
}, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER);
Aktualisierungen des Schemas für verwaltete Konfigurationen einer App
Wenn der Entwickler das verwaltete Konfigurationsschema einer Anwendung aktualisiert, werden gespeicherte Konfigurationsprofile automatisch aktualisiert. Wenn der Entwickler beispielsweise eine Option entfernt, wird sie aus allen vorhandenen Konfigurationsprofilen für die App entfernt. Wenn der Entwickler eine Option hinzufügt, wird der vom Entwickler festgelegte Standardwert für die Option allen vorhandenen Konfigurationsprofilen für die App hinzugefügt.
Verwaltete Konfigurationen auf Nutzergeräte anwenden
Informationen zum Anwenden verwalteter Konfigurationen auf Nutzergeräte finden Sie unter Verwaltete Konfigurationen anwenden.
Informationen zum Verhalten beim Auswählen/Deaktivieren der Auswahl
Mit dem iFrame für verwaltete Konfigurationen können IT-Administratoren jetzt die Anwendungseinschränkungen einer verwalteten Konfiguration explizit deaktivieren, wenn sie sie nicht benötigen. Dies ist eine Änderung gegenüber dem vorherigen Verhalten und kann sich darauf auswirken, welche Einschränkungen je nach Auswahl des Administrators an Ihre Anwendung gesendet werden.
Im folgenden Abschnitt wird beschrieben, wie sich der iFrame für verwaltete Konfigurationen mit diesem neuen Auswahlmuster verhält und was Entwickler als Teil ihrer verwalteten Konfiguration erwarten können.
Standardwert für eine App-Einschränkung verwenden
Wenn für die App-Einschränkungen mit dem Typ bool, choice, integer, Mehrfachauswahl oder String ein Standardwert angegeben ist, wird der Standardwert als Wert der App-Einschränkung angewendet, wenn Administratoren die verwaltete Konfiguration speichern, ohne Änderungen an der App-Einschränkung vorzunehmen.
Beispiel mit dem folgenden Schema für die Anwendungseinschränkung:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"defaultValue": {
"type": "bool",
"valueBool": false
}
}]
Folgende App-Einschränkungen werden an das Gerät gesendet:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"value": {
"type": "bool",
"valueBool": false
}
}]
Ohne Standardwerte für App-Einschränkungen zu verwenden
Wenn die App-Einschränkungen mit dem Typ bool, choice, integer, Mehrfachauswahl oder String keinen Standardwert haben, werden diese Anwendungseinschränkungen nicht berücksichtigt, wenn Administratoren die verwaltete Konfiguration speichern, ohne Änderungen an der App-Einschränkung vorzunehmen.
Beispiel mit dem folgenden Schema für die Anwendungseinschränkung:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool"
// defaultValue absent.
}]
Folgende App-Einschränkungen werden an das Gerät gesendet:
"restrictions": [
// Empty
]
Bundles im Schema verwenden
Dieser Abschnitt gilt für App-Einschränkungen für Bundles:
Mindestens eine untergeordnete App-Einschränkung mit einem Standardwert in einer App-Einschränkung für Bundles
Wenn in der Bundle-App-Einschränkung mindestens eine der Einschränkungen für untergeordnete Apps vom Typ bool, choice, integer, Mehrfachauswahl oder String mit einem Standardwert angegeben ist, wird der Standardwert als Wert der App-Einschränkung angewendet. Diejenigen ohne Standardwerte werden ausgeschlossen, wenn Administratoren die verwaltete Konfiguration speichern, ohne Änderungen an der App-Einschränkung vorzunehmen.
"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.
}
]
}]
Folgende App-Einschränkungen werden an das Gerät gesendet:
"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.
]
}]
Alle Einschränkungen für untergeordnete Apps ohne Standardwerte
Wenn in der App-Einschränkung Bundle alle Einschränkungen der untergeordneten App mit dem Typ bool, choice, integer, Mehrfachauswahl oder String keinen Standardwert enthalten, wird die App-Einschränkung Bundle nicht berücksichtigt, wenn Administratoren die verwaltete Konfiguration speichern, ohne Änderungen an der App-Einschränkung vorzunehmen.
Beispiel mit dem folgenden Schema für die Anwendungseinschränkung:
"restrictions": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key_1",
"restrictionType": "bool",
// defaultValue absent.
},
{
"key": "bool_key_2",
"restrictionType": "bool"
// defaultValue absent.
}
]
}]
Folgende App-Einschränkungen werden an das Gerät gesendet:
"restrictions": [
// Empty
]
„bundle_array“ im Schema verwenden
Dieser Abschnitt bezieht sich auf die Anwendungseinschränkungen von bundle_array. Es ist nicht relevant, wenn die Einschränkungen der untergeordneten Anwendung mit dem Typ bool, choice, integer, Mehrfachauswahl oder string Standardwerte haben.
Beispiel mit dem folgenden Schema für die Anwendungseinschränkung:
"restrictions": [{
"key": "bundle_array_key",
"restrictionType": "bundleArray",
"nestedRestriction": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key",
"restrictionType": "bool",
"defaultValue": {
"type": "bool",
"valueBool": true
}
}]
}]
}]
Mindestens eine Bundle-Gruppe in der Einschränkung „bundle_array“
Wenn mindestens eine Bundle-Gruppe festgelegt ist, gilt die App-Einschränkung bundle_array, wenn Administratoren die verwaltete Konfiguration speichern.
Folgende App-Einschränkungen werden an das Gerät gesendet:
"restrictions": [{
"key": "bundle_array_key",
"restrictionType": "bundleArray",
"nestedRestriction": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key",
"restrictionType": "bool",
"value": {
"type": "bool",
"valueBool": true
}
}]
}]
}]
Keine Bundle-Gruppen in der App-Einschränkung „bundle_array“
Die Anwendungseinschränkung bundle_array wird nicht berücksichtigt, wenn Administratoren die verwaltete Konfiguration speichern, ohne eine Bundle-Gruppe hinzuzufügen. Folgende App-Einschränkungen werden an das Gerät gesendet:
"restrictions": [
// Empty
]