iframe การกำหนดค่าที่มีการจัดการเป็น UI แบบฝังที่ช่วยให้ผู้ดูแลระบบไอทีบันทึก แก้ไข และลบการตั้งค่าการกำหนดค่าที่มีการจัดการของแอปได้ เช่น แสดงปุ่ม (หรือองค์ประกอบ UI ที่คล้ายกัน) ในรายละเอียดหรือหน้าการตั้งค่าของแอปที่เปิด iframe เป็นต้น
การดำเนินการที่ผู้ดูแลระบบไอทีเข้าถึงได้จาก iframe
ตั้งค่าและบันทึกโปรไฟล์การกำหนดค่า
iframe จะดึงและแสดงสคีมาการกำหนดค่าที่มีการจัดการสำหรับแอปที่ระบุ โดยผู้ดูแลระบบไอทีจะตั้งค่าการกำหนดค่าและบันทึกไว้เป็นโปรไฟล์การกำหนดค่าได้ภายใน iframe ทุกครั้งที่ผู้ดูแลระบบไอทีบันทึกโปรไฟล์การกำหนดค่าใหม่ iframe จะส่งตัวระบุที่ไม่ซ้ำกันชื่อ mcmId
กลับมา
ซึ่งช่วยให้ผู้ดูแลระบบไอทีสร้างโปรไฟล์หลายโปรไฟล์สำหรับแอปเดียวกันได้
แก้ไขโปรไฟล์การกำหนดค่า
iframe สามารถแสดงโปรไฟล์การกำหนดค่าที่บันทึกไว้ ผู้ดูแลระบบไอทีสามารถอัปเดตการตั้งค่าภายในโปรไฟล์และบันทึกการเปลี่ยนแปลงได้
ลบโปรไฟล์การกำหนดค่า
ผู้ดูแลระบบไอทีจะลบโปรไฟล์การกำหนดค่าออกจาก iframe ได้ ฟีเจอร์นี้ปิดใช้อยู่โดยค่าเริ่มต้น
แสดง iframe การกำหนดค่าที่มีการจัดการในคอนโซล
สร้างโทเค็นเว็บ
ใช้ Enterprises.createWebToken
เพื่อสร้างโทเค็นเว็บที่ระบุองค์กร คุณต้องใส่โทเค็นที่ส่งคืน รวมถึงพารามิเตอร์อื่นๆ เมื่อแสดงผล iframe ในคอนโซลของคุณ ตัวอย่างต่อไปนี้แสดงวิธีเรียกข้อมูลโทเค็นโดยใช้ไลบรารีของไคลเอ็นต์ Google Play EMM API สำหรับ Java
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>
พารามิเตอร์ของ 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);
การอัปเดตสคีมาการกำหนดค่าที่มีการจัดการของแอป
หากนักพัฒนาซอฟต์แวร์อัปเดตสคีมาการกำหนดค่าที่มีการจัดการของแอป ระบบจะอัปเดตโปรไฟล์การกำหนดค่าที่บันทึกไว้โดยอัตโนมัติ เช่น หากนักพัฒนาซอฟต์แวร์นำตัวเลือกออก ระบบจะนำตัวเลือกนั้นออกจากโปรไฟล์การกำหนดค่าที่มีอยู่ทั้งหมดของแอป หากนักพัฒนาซอฟต์แวร์เพิ่มตัวเลือก ระบบจะเพิ่มค่าเริ่มต้นของตัวเลือก (ซึ่งนักพัฒนาซอฟต์แวร์กำหนด) ลงในโปรไฟล์การกำหนดค่าที่มีอยู่ทั้งหมดของแอป
ใช้การกำหนดค่าที่มีการจัดการกับอุปกรณ์ของผู้ใช้
ดูวิธีใช้การกำหนดค่าที่มีการจัดการกับอุปกรณ์ของผู้ใช้ที่หัวข้อใช้การกำหนดค่าที่มีการจัดการ
การทำความเข้าใจลักษณะการทำงานของการเลือก/ยกเลิกการเลือก
ตอนนี้ iframe การกำหนดค่าที่มีการจัดการช่วยให้ผู้ดูแลระบบไอทียกเลิกการเลือกข้อจำกัดของแอปการกำหนดค่าที่มีการจัดการได้อย่างชัดเจนเมื่อไม่จำเป็นต้องใช้ ซึ่งเป็นการเปลี่ยนแปลงจากลักษณะการทำงานก่อนหน้าและอาจมีผลกระทบต่อข้อจำกัดที่ส่งไปยังแอปของคุณตามการเลือกของผู้ดูแลระบบ
ส่วนด้านล่างจะสรุปการทำงานของ iframe การกำหนดค่าที่มีการจัดการด้วยรูปแบบการยกเลิกการเลือกใหม่นี้ และสิ่งที่นักพัฒนาซอฟต์แวร์คาดว่าจะส่งไปเป็นส่วนหนึ่งของการกำหนดค่าที่มีการจัดการของตน
การใช้ค่าเริ่มต้นสำหรับการจำกัดแอป
หากการจำกัดประเภท bool, choice, integer, multi-select หรือ string ของแอปมีค่าเริ่มต้น ระบบจะใช้ค่าเริ่มต้นเป็น ค่าของข้อจำกัดแอปเมื่อผู้ดูแลระบบบันทึกการกำหนดค่าที่มีการจัดการโดยไม่ได้ใช้การเปลี่ยนแปลงใดๆ กับข้อจำกัดของแอป
ตัวอย่างเช่น ด้วยสคีมาข้อจำกัดของแอปต่อไปนี้
"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, multi-select หรือ string ไม่ได้ให้ค่าเริ่มต้น ข้อจำกัดแอปเหล่านี้จะไม่รวมเมื่อผู้ดูแลระบบบันทึกการกำหนดค่าที่มีการจัดการโดยไม่ได้นำการเปลี่ยนแปลงใดๆ ไปใช้กับการจำกัดแอปดังกล่าว
ตัวอย่างเช่น ด้วยสคีมาข้อจำกัดของแอปต่อไปนี้
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool"
// defaultValue absent.
}]
ข้อจำกัดของแอปที่ส่งไปยังอุปกรณ์จะเป็นดังนี้
"restrictions": [
// Empty
]
การใช้แพ็กเกจภายในสคีมา
ส่วนนี้ใช้กับข้อจำกัดของแอปแพ็กเกจดังนี้
มีข้อจำกัดของแอปย่อยอย่างน้อย 1 รายการที่มีค่าเริ่มต้นในข้อจำกัดแอป Bundle
หากภายในการจำกัดแอปBundle อย่างน้อย 1 รายการมีค่าเริ่มต้นเป็นข้อจำกัดแอปย่อยประเภท bool, choice, integer, multi-select หรือ string ที่มีค่าเริ่มต้น ระบบจะใช้ค่าเริ่มต้นเป็นค่าของข้อจำกัดแอป และระบบจะยกเว้นค่าที่ไม่มีค่าเริ่มต้นเมื่อผู้ดูแลระบบบันทึกการกำหนดค่าที่มีการจัดการโดยไม่ใช้การเปลี่ยนแปลงใดๆ กับการจำกัดดังกล่าว
"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, multi-select หรือ string ไม่ได้ระบุค่าเริ่มต้น ระบบจะไม่รวมข้อจำกัดแอป bundle เมื่อผู้ดูแลระบบบันทึกการกำหนดค่าที่มีการจัดการโดยไม่ได้นำการเปลี่ยนแปลงใดๆ ไปใช้กับการจำกัดแอปดังกล่าว
ตัวอย่างเช่น ด้วยสคีมาข้อจำกัดของแอปต่อไปนี้
"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, multi-select หรือ string มีค่าเริ่มต้น
ตัวอย่างเช่น ด้วยสคีมาข้อจำกัดของแอปต่อไปนี้
"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
หากมีการตั้งค่ากลุ่ม bundle อย่างน้อย 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
}
}]
}]
}]
ไม่มีกลุ่มชุดในการจำกัดแอป Bundle_array
แต่จะไม่รวมข้อจำกัดแอป bundle_array เมื่อผู้ดูแลระบบบันทึกการกำหนดค่าที่มีการจัดการโดยไม่เพิ่มกลุ่ม bundle ข้อจำกัดของแอปที่ส่งไปยังอุปกรณ์จะเป็นดังนี้
"restrictions": [
// Empty
]