แอปบางส่วนที่ออกแบบมาสำหรับองค์กรมีการตั้งค่าในตัวที่เรียกว่าที่มีการจัดการ การกำหนดค่าที่ผู้ดูแลระบบไอทีกำหนดค่าจากระยะไกลได้ ตัวอย่างเช่น แอปอาจ มีตัวเลือกในการซิงค์ข้อมูลเฉพาะเมื่ออุปกรณ์เชื่อมต่อกับ Wi-Fi เท่านั้น การระบุ ผู้ดูแลระบบไอทีจะระบุการกำหนดค่าที่มีการจัดการและนำไปใช้กับการกำหนดค่านั้นได้ อุปกรณ์เป็นสิ่งจําเป็นสําหรับชุดโซลูชันทั้งหมด คุณรองรับการกำหนดค่าที่มีการจัดการในคอนโซล EMM ได้ 2 วิธี ดังนี้
- สร้าง UI ของคุณเองและใช้การตั้งค่าผ่าน
managedConfiguration
ใน ApplicationPolicy - เพิ่ม iframe การกำหนดค่าที่มีการจัดการลงในคอนโซล (คำแนะนำโดยละเอียด
ด้านล่าง) และใช้การตั้งค่าผ่าน
managedConfigurationTemplate
ใน ApplicationPolicy
iframe การกำหนดค่าที่มีการจัดการ คือ UI ที่ฝังได้ซึ่งช่วยให้ผู้ดูแลระบบไอที บันทึก แก้ไข และลบการตั้งค่าการกำหนดค่าที่มีการจัดการของแอป คุณสามารถ ตัวอย่างเช่น แสดงปุ่ม (หรือองค์ประกอบ UI ที่คล้ายกัน) ในรายละเอียดของแอป หรือ หน้าการตั้งค่าที่เปิด iframe
การดำเนินการที่ผู้ดูแลระบบไอทีเข้าถึงได้จาก iframe
![iframe ของ MCN](https://developers.google.cn/static/android/work/play/emm-api/images/mcm_iframe.png?authuser=19&hl=th)
ตั้งค่าและบันทึกโปรไฟล์การกำหนดค่า
iframe จะดึงข้อมูลและแสดงสคีมาการกำหนดค่าที่มีการจัดการสำหรับ
แอปที่ระบุ ใน iframe ผู้ดูแลระบบไอทีจะกำหนดค่าและบันทึกได้
เป็นโปรไฟล์การกำหนดค่า ทุกครั้งที่ผู้ดูแลระบบไอทีบันทึกข้อมูล
iframe จะแสดงผลตัวระบุที่ไม่ซ้ำที่เรียกว่า mcmId
ซึ่งช่วยให้ผู้ดูแลระบบไอทีสร้างหลายโปรไฟล์สำหรับ
แอป
แก้ไขโปรไฟล์การกำหนดค่า
iframe สามารถแสดงโปรไฟล์การกำหนดค่าที่บันทึกไว้ได้ ผู้ดูแลระบบไอทีสามารถ อัปเดตการตั้งค่าภายในโปรไฟล์และบันทึกการเปลี่ยนแปลง
ลบโปรไฟล์การกำหนดค่า
ผู้ดูแลระบบไอทีจะลบโปรไฟล์การกำหนดค่าออกจาก iframe ได้ ฟีเจอร์นี้ ปิดใช้โดยค่าเริ่มต้น
เพิ่ม iframe ลงในคอนโซล
สร้างโทเค็นเว็บ
ใช้ enterprises.webTokens.create
เพื่อสร้างโทเค็นเว็บที่ระบุองค์กร และตั้งค่า iframeFeature
เป็น
MANAGED_CONFIGURATIONS
คุณต้องใส่โทเค็นที่ส่งกลับพร้อมกับโทเค็นอื่นๆ
เมื่อแสดงผล iframe ในคอนโซลของคุณ
แสดงผล 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>
พารามิเตอร์ URL
ตารางด้านล่างแสดงพารามิเตอร์ทั้งหมดที่พร้อมใช้งานสำหรับ URL ของ iframe
พารามิเตอร์ | ต้องระบุ | คำอธิบาย |
---|---|---|
token |
ใช่ | โทเค็นที่ส่งกลับจาก Enterprises.createWebToken |
packageName |
ใช่ | รหัสผลิตภัณฑ์ของแอป ตัวอย่างเช่น
com.google.android.gm |
mcmId |
ไม่ได้ | รหัสของโปรไฟล์การกำหนดค่าที่มีการจัดการ |
canDelete |
ไม่ได้ | หากเป็น TRUE ให้เปิดใช้ปุ่มใน iframe ที่อนุญาตให้ฝ่ายไอที ผู้ดูแลระบบเพื่อลบโปรไฟล์การกำหนดค่าที่มีการจัดการ ถ้า 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
การทำความเข้าใจพฤติกรรมการเลือก/ยกเลิกการเลือก
ขณะนี้ iframe การกำหนดค่าที่มีการจัดการอนุญาตให้ผู้ดูแลระบบไอทียกเลิกการเลือกได้ การจำกัดแอปของการกำหนดค่าที่มีการจัดการเมื่อไม่จำเป็นต้องใช้ ช่วงเวลานี้ เป็นการเปลี่ยนแปลงจากพฤติกรรมก่อนหน้า และอาจส่งผลกระทบกับข้อจำกัด ส่งไปยังแอปของคุณตามการเลือกของผู้ดูแลระบบ
ส่วนด้านล่างจะสรุปวิธีการทำงานของ iframe การกำหนดค่าที่มีการจัดการกับ รูปแบบการยกเลิกการเลือกแบบใหม่นี้และสิ่งที่นักพัฒนาแอปคาดว่าจะส่งเป็นส่วนหนึ่งของ การกำหนดค่าที่มีการจัดการ
การใช้ค่าเริ่มต้นสำหรับการจำกัดแอป
หากการจำกัดแอปเป็นประเภท bool choice จำนวนเต็ม เลือกหลายรายการ หรือสตริง เป็นค่าเริ่มต้น ระบบจะใช้ค่าเริ่มต้นเป็น ค่าของข้อจำกัดของแอปเมื่อผู้ดูแลระบบบันทึกการกำหนดค่าที่มีการจัดการ ใช้การเปลี่ยนแปลงใดๆ ในข้อจำกัดของแอปดังกล่าว
เช่น ใช้สคีมาข้อจำกัดของแอปต่อไปนี้
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"defaultValue": {
"type": "bool",
"valueBool": false
}
}]
ข้อจำกัดของแอปที่ส่งไปยังอุปกรณ์จะมีลักษณะดังนี้
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"value": {
"type": "bool",
"valueBool": false
}
}]
โดยไม่ใช้ค่าเริ่มต้นสำหรับการจำกัดแอป
หากการจำกัดแอปเป็นประเภท bool choice จำนวนเต็ม เลือกหลายรายการ หรือสตริง ไม่ได้ระบุค่าเริ่มต้น ข้อจำกัดของแอปเหล่านี้จะไม่ รวมไว้เมื่อผู้ดูแลระบบบันทึกการกำหนดค่าที่มีการจัดการโดยไม่ใช้การเปลี่ยนแปลงใดๆ เกี่ยวกับการจำกัดแอปนั้น
เช่น ใช้สคีมาข้อจำกัดของแอปต่อไปนี้
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool"
// defaultValue absent.
}]
ข้อจำกัดของแอปที่ส่งไปยังอุปกรณ์จะมีลักษณะดังนี้
"restrictions": [
// Empty
]
การใช้แพ็กเกจภายในสคีมา
ส่วนนี้จะมีผลกับแพ็กเกจ การจำกัดแอป:
มีการจำกัดแอปย่อยอย่างน้อย 1 รายการที่มีค่าเริ่มต้นในการจำกัดแอป Bundle
หากอยู่ในแพ็กเกจ การจำกัดแอปย่อยอย่างน้อย 1 อย่างที่เป็นประเภท bool ตัวเลือก จำนวนเต็ม เลือกหลายรายการ หรือ สตริง เป็นค่าเริ่มต้น ระบบจะใช้ค่าเริ่มต้นเป็น ข้อจำกัดของแอปและที่ไม่มีค่าเริ่มต้นจะยกเว้น เมื่อผู้ดูแลระบบบันทึกการกำหนดค่าที่มีการจัดการโดยไม่ทำการเปลี่ยนแปลงใดๆ การจำกัดแอป
"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 ตัวเลือก จำนวนเต็ม เลือกหลายรายการ หรือ สตริง ไม่ได้ระบุค่าเริ่มต้น แพ็กเกจ ข้อจำกัดของแอปจะไม่รวมอยู่ด้วยเมื่อผู้ดูแลระบบบันทึกการกำหนดค่าที่มีการจัดการ โดยไม่ใช้การเปลี่ยนแปลงใดๆ กับการจำกัดแอปนั้น
เช่น ใช้สคีมาข้อจำกัดของแอปต่อไปนี้
"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 จำนวนเต็ม เลือกหลายรายการ หรือสตริง เป็นค่าเริ่มต้น
เช่น ใช้สคีมาข้อจำกัดของแอปต่อไปนี้
"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 อย่างน้อย 1 กลุ่มในข้อจำกัดของแอป Bundle_array
หากมีอย่างน้อย 1 แพ็กเกจ ตั้งค่ากลุ่มแล้ว 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
}
}]
}]
}]
หากบันทึกข้อจำกัดหรือกลุ่มแพ็กเกจไว้ 1 รายการ ข้อจำกัด/แพ็กเกจทั้งหมด
ภายใน bundle_array
ทั้งหมดจะได้รับการกำหนดตามลำดับความสำคัญต่อไปนี้
- ค่าที่ผู้ดูแลระบบเลือก
- ค่าเริ่มต้นที่แสดงสำหรับแพ็กเกจ/ข้อจำกัดดังกล่าว
- ค่าที่แสดงใน iFrame หากไม่มีค่าเริ่มต้น
ไม่มีกลุ่ม Bundle ในข้อจำกัดแอป Bundle_array
bundle_array ข้อจำกัดของแอปจะไม่รวมอยู่ด้วยเมื่อผู้ดูแลระบบบันทึกการกำหนดค่าที่มีการจัดการ โดยไม่ต้องเพิ่มแพ็กเกจ กลุ่ม ข้อจำกัดของแอปที่ส่งไปยังอุปกรณ์จะมีลักษณะดังนี้
"restrictions": [
// Empty
]