iframe การกําหนดค่าที่มีการจัดการ

iframe การกำหนดค่าที่มีการจัดการ คือ UI ที่ฝังได้ซึ่งช่วยให้ผู้ดูแลระบบไอที บันทึก แก้ไข และลบการตั้งค่าการกำหนดค่าที่มีการจัดการของแอป คุณสามารถ ตัวอย่างเช่น แสดงปุ่ม (หรือองค์ประกอบ UI ที่คล้ายกัน) ในรายละเอียดของแอป หรือ หน้าการตั้งค่าที่เปิด iframe

การดำเนินการที่ผู้ดูแลระบบไอทีเข้าถึงได้จาก iframe

วันที่ iframe ของ MCN
รูปที่ 1 ตัวอย่าง iframe ของการกำหนดค่าที่มีการจัดการสำหรับ Gmail

ตั้งค่าและบันทึกโปรไฟล์การกำหนดค่า

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 จำนวนเต็ม เลือกหลายรายการ หรือสตริง เป็นค่าเริ่มต้น ระบบจะใช้ค่าเริ่มต้นเป็น ค่าของข้อจำกัดของแอปเมื่อผู้ดูแลระบบบันทึกการกำหนดค่าที่มีการจัดการ ใช้การเปลี่ยนแปลงใดๆ ในข้อจำกัดของแอปดังกล่าว

เช่น ใช้สคีมาข้อจำกัดของแอปต่อไปนี้

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

ไม่มีกลุ่ม Bundle ในข้อจำกัดแอป Bundle_array

bundle_array ข้อจำกัดของแอปจะไม่รวมอยู่ด้วยเมื่อผู้ดูแลระบบบันทึกการกำหนดค่าที่มีการจัดการ โดยไม่ต้องเพิ่มแพ็กเกจ กลุ่ม ข้อจำกัดของแอปที่ส่งไปยังอุปกรณ์จะมีลักษณะดังนี้

"restrictions": [
    // Empty
]