受管理 iframe iframe

受管理的設定 iframe 是可嵌入的 UI,可讓 IT 管理員 儲存、編輯及刪除應用程式的受管理設定。您可以、 例如在應用程式的詳細資料中顯示按鈕 (或類似的 UI 元素),或 即可開啟 iframe 的設定頁面

IT 管理員可透過 iframe 執行的動作

MCM iframe
圖 1.Gmail 的受管理設定 iframe 範例。

設定並儲存組態設定檔

iframe 會擷取並顯示 指定應用程式。在 iframe 中,IT 管理員可以進行設定並儲存 並當做組態設定檔每當 IT 管理員儲存 設定檔,iframe 會傳回名為 mcmId 的專屬 ID。 IT 管理員可藉此建立多個設定檔 應用程式。

編輯組態設定檔

iframe 可以顯示已儲存的設定設定檔。IT 管理員可以 更新個人檔案中的設定並儲存變更。

刪除組態設定檔

IT 管理員可以刪除 iframe 中的設定檔。這項功能 預設停用。

在控制台中顯示受管理的設定 iframe

產生網路權杖

使用 Enterprises.createWebToken 產生用於識別企業的網路權杖。您必須提供 將 iframe 顯示在 控制台。以下範例說明如何使用 Google Play 適用的 EMM API 用戶端程式庫

public AdministratorWebToken getAdministratorWebToken(
    String enterpriseId,
    AdministratorWebTokenSpec tokenSpec) throws IOException {
  return androidEnterprise
     .enterprise()
     .createWebToken(enterpriseId, tokenSpec)
     .execute();
}

顯示 iframe

以下範例說明如何轉譯受管理的設定 iframe:

<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>

網址參數

下表列出 iframe 網址的所有可用參數。

參數必填說明
token Enterprises.createWebToken 傳回的權杖。
packageName 應用程式的產品 ID。例如: com.google.android.gm
mcmId 受管理設定設定檔的 ID。
canDelete 如果為 TRUE,請在 iframe 中啟用按鈕,方便 IT 團隊進行操作 管理員負責刪除受管理的組態設定檔。如果 FALSE (預設值),代表按鈕已停用。
locale 格式正確 BCP 47 語言標記,用來將 iframe 內容本地化。如果不是 則預設值為 en_US

iframe 事件

您也應該在整合過程中處理下列事件。

活動說明
onconfigupdated 使用者更新現有的受管理設定設定檔或建立新的設定檔 第一項。這樣會傳回包含以下內容的物件:
{
  "mcmId": The ID of the managed configurations profile.
  "name": The name of the updated or newly created managed configurations profile.
}
onconfigdeleted 使用者刪除現有的受管理設定設定檔。這會傳回 一個物件,其中包含:
{
  "mcmId": The ID of the managed configurations profile.
}

以下範例說明如何監聽 onconfigupdated,例如:

iframe.register('onconfigupdated', function(event) {
  console.log(event);
}, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER);

應用程式的受管理設定結構定義更新

如果開發人員更新應用程式的受管理設定結構定義,已儲存 系統會自動更新設定檔舉例來說 移除選項後,該選項將從所有現有設定中移除 您需要為每個應用程式建立設定檔如果開發人員新增了選項,那麼 選項 (由開發人員定義) 會加入所有現有設定 您需要為每個應用程式建立設定檔

將受管理的設定套用至使用者的裝置

如要瞭解如何為使用者裝置,請參閱 套用受管理的設定


瞭解選取/取消選取行為

IT 管理員現在可透過受管理的設定 iframe 明確取消選取 受管理設定的應用程式限制。這個 意指先前行為的變更,且可能會影響 會根據管理員選擇傳送至您的應用程式。

下一節概述受管理的設定 iframe 與 這個新的取消選取模式,以及開發人員預計會在 的受管理設定

為應用程式限制使用預設值

如果應用程式限制為 bool 類型, choiceinteger複選題字串 提供預設值時,系統便會套用預設值做為 管理員儲存受管理設定時,應用程式限制的價值。 套用任何變更。

例如,使用下列應用程式限制結構定義:

"restrictions": [{
    "key": "bool_key",
    "restrictionType": "bool",
    "defaultValue": {
        "type": "bool",
        "valueBool": false
    }
}]

傳送到裝置的應用程式限制如下:

"restrictions": [{
    "key": "bool_key",
    "restrictionType": "bool",
    "value": {
        "type": "bool",
        "valueBool": false
    }
}]

未針對應用程式限制使用預設值

如果應用程式限制為 bool 類型, choiceinteger複選題字串 未提供預設值,那麼這些應用程式限制就不會 管理員儲存受管理設定但未套用任何變更時,即包含在內 。

例如,使用下列應用程式限制結構定義:

"restrictions": [{
    "key": "bool_key",
    "restrictionType": "bool"
    // defaultValue absent.
}]

傳送到裝置的應用程式限制如下:

"restrictions": [
    // Empty
]

在結構定義中使用套件

本節適用於套裝組合 應用程式限制:

在應用程式套件應用程式限制中,至少設置一項設有預設值的兒童應用程式限制

如果套裝組合內 至少一項具有 bool 類型的兒童應用程式限制。 choiceinteger複選字串 提供預設值時,系統便會套用預設值做為 應用程式限制的值和未使用預設值的項目都會遭到排除 未套用任何變更時,管理員只儲存受管理設定時 應用程式限制。

"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.
        }
    ]
}]

傳送到裝置的應用程式限制如下:

"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.
    ]
}]

所有不含預設值的子應用程式限制

如果套裝組合內 應用程式會限制所有兒童應用程式限制 (使用 bool 類型)。 choiceinteger複選字串 未提供預設值,也就是套裝組合 管理員儲存受管理的設定時,應用程式限制不會納入應用程式限制 而不套用任何變更。

例如,使用下列應用程式限制結構定義:

"restrictions": [{
    "key": "bundle_key",
    "restrictionType": "bundle",
    "nestedRestriction": [{
            "key": "bool_key_1",
            "restrictionType": "bool",
            // defaultValue absent.
        },
        {
            "key": "bool_key_2",
            "restrictionType": "bool"
            // defaultValue absent.
        }
    ]
}]

傳送到裝置的應用程式限制如下:

"restrictions": [
    // Empty
]

在結構定義中使用 bundle_array

本節適用於 bundle_array 應用程式限制。 如果具有 bool 類型的兒童應用程式限制,則與本程式碼無關。 choiceinteger複選題字串 都有預設值

例如,使用下列應用程式限制結構定義:

"restrictions": [{
    "key": "bundle_array_key",
    "restrictionType": "bundleArray",
    "nestedRestriction": [{
        "key": "bundle_key",
        "restrictionType": "bundle",
        "nestedRestriction": [{
            "key": "bool_key",
            "restrictionType": "bool",
            "defaultValue": {
                "type": "bool",
                "valueBool": true
            }
        }]
    }]
}]

在 bundle_array 應用程式限制中加入至少一個軟體包群組

如有至少一個套裝組合 群組設定,則 bundle_array 管理員儲存受管理的設定時,就會納入應用程式限制。

傳送到裝置的應用程式限制如下:

"restrictions": [{
    "key": "bundle_array_key",
    "restrictionType": "bundleArray",
    "nestedRestriction": [{
        "key": "bundle_key",
        "restrictionType": "bundle",
        "nestedRestriction": [{
            "key": "bool_key",
            "restrictionType": "bool",
            "value": {
                "type": "bool",
                "valueBool": true
            }
        }]
    }]
}]

「 bundle_array」應用程式限制中沒有任何套件群組

bundle_array 管理員儲存受管理的設定時,應用程式限制不會納入應用程式限制 無須新增套裝組合 群組。傳送到裝置的應用程式限制如下:

"restrictions": [
    // Empty
]