有些專為企業設計的應用程式包含內建的「受管理設定」 以及 IT 管理員可從遠端調整的設定舉例來說,應用程式 可以選擇只在裝置連上 Wi-Fi 時同步處理資料。提供 IT 管理員可以指定受管理的設定,並套用至 裝置適用於所有解決方案集。 您可以透過以下兩種方式在 EMM 控制台中支援受管理的設定:
- 建立自己的 UI,並透過以下項目的
managedConfiguration
套用設定: ApplicationPolicy。 - 在控制台中新增受管理的設定 iframe (詳細操作說明
),並透過「
managedConfigurationTemplate
」在以下位置套用設定: ApplicationPolicy
受管理的設定 iframe 是可嵌入的 UI,可讓 IT 管理員 儲存、編輯及刪除應用程式的受管理設定。您可以、 例如在應用程式的詳細資料中顯示按鈕 (或類似的 UI 元素),或 即可開啟 iframe 的設定頁面
IT 管理員可透過 iframe 執行的動作
![MCM iframe](https://developers-dot-devsite-v2-prod.appspot.com/static/android/work/play/emm-api/images/mcm_iframe.png?authuser=9&hl=zh-tw)
設定並儲存組態設定檔
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 類型, choice、 integer、 複選題 或 字串 提供預設值時,系統便會套用預設值做為 管理員儲存受管理設定時,應用程式限制的價值。 套用任何變更。
例如,使用下列應用程式限制結構定義:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"defaultValue": {
"type": "bool",
"valueBool": false
}
}]
傳送到裝置的應用程式限制如下:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"value": {
"type": "bool",
"valueBool": false
}
}]
未針對應用程式限制使用預設值
如果應用程式限制為 bool 類型, choice、 integer、 複選題 或 字串 未提供預設值,那麼這些應用程式限制就不會 管理員儲存受管理設定但未套用任何變更時,即包含在內 。
例如,使用下列應用程式限制結構定義:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool"
// defaultValue absent.
}]
傳送到裝置的應用程式限制如下:
"restrictions": [
// Empty
]
在結構定義中使用套件
本節適用於套裝組合 應用程式限制:
在應用程式套件應用程式限制中,至少設置一項設有預設值的兒童應用程式限制
如果套裝組合內 至少一項具有 bool 類型的兒童應用程式限制。 choice、 integer、 複選 或 字串 提供預設值時,系統便會套用預設值做為 應用程式限制的值和未使用預設值的項目都會遭到排除 未套用任何變更時,管理員只儲存受管理設定時 應用程式限制。
"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、 choice、 integer、 複選 或 字串 未提供預設值,也就是套裝組合 管理員儲存受管理的設定時,應用程式限制不會納入應用程式限制 而不套用任何變更。
例如,使用下列應用程式限制結構定義:
"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、 choice、 integer、 複選題 或 字串 都有預設值
例如,使用下列應用程式限制結構定義:
"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
]