支援受管理的設定

有些專為企業設計的應用程式包含內建的「受管理設定」 以及 IT 管理員可從遠端調整的設定舉例來說,應用程式 可以選擇只在裝置連上 Wi-Fi 時同步處理資料。提供 IT 管理員可以指定受管理的設定,並套用至 裝置適用於所有解決方案集。 您可以透過以下兩種方式在 EMM 控制台中支援受管理的設定:

  • 建立自己的 UI,並透過以下項目的 managedConfiguration 套用設定: ApplicationPolicy
  • 在控制台中新增受管理的設定 iframe (詳細操作說明 ),並透過「managedConfigurationTemplate」在以下位置套用設定: ApplicationPolicy


受管理的設定 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.webTokens.create 產生用於識別企業的網頁權杖,並將 iframeFeature 設為 MANAGED_CONFIGURATIONS。您必須加入傳回的權杖和其他 參數。

顯示 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);

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

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

將組態設定檔套用至政策

系統會將每個設定設定檔儲存為不重複的 mcmId。如要套用 方法是在政策設定檔中指定 mcmId managedConfigurationTemplate


瞭解選取/取消選取行為

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

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

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

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

"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 應用程式限制。如果子項應用程式限制類型,則與預期無關 boolchoiceinteger複選題字串 都有預設值

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

"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 中的設定將以下列優先順序設定:

  • 管理員選擇的值
  • 列出該套裝組合/限制的預設值。
  • 在沒有預設值的情況下,iframe 中顯示的值
,瞭解如何調查及移除這項存取權。

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

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

"restrictions": [
    // Empty
]