iframe của cấu hình được quản lý là một giao diện người dùng có thể nhúng cho phép quản trị viên CNTT lưu, chỉnh sửa và xoá các chế độ cài đặt cấu hình được quản lý của ứng dụng. Bạn có thể, ví dụ: cho thấy một nút (hoặc thành phần tương tự trên giao diện người dùng) trong phần thông tin chi tiết của một ứng dụng hoặc trang cài đặt để mở iframe.
Các thao tác mà quản trị viên CNTT có thể thực hiện từ iframe
![iframe mcm](https://developers-dot-devsite-v2-prod.appspot.com/static/android/work/play/emm-api/images/mcm_iframe.png?authuser=8&hl=vi)
Đặt và lưu hồ sơ cấu hình
iframe truy xuất và hiển thị giản đồ cấu hình được quản lý cho một
ứng dụng cụ thể. Trong iframe, quản trị viên CNTT có thể thiết lập cấu hình và lưu
chúng dưới dạng hồ sơ cấu hình. Mỗi khi quản trị viên CNTT lưu dữ liệu mới
cấu hình này, iframe sẽ trả về một giá trị nhận dạng duy nhất có tên là mcmId
.
Nhờ đó, quản trị viên CNTT có thể tạo nhiều hồ sơ cho cùng một người dùng
.
Chỉnh sửa hồ sơ cấu hình
iframe có khả năng hiển thị các hồ sơ cấu hình đã lưu. Quản trị viên CNTT có thể cập nhật chế độ cài đặt trong hồ sơ và lưu các thay đổi của họ.
Xoá hồ sơ cấu hình
Quản trị viên CNTT có thể xoá hồ sơ cấu hình khỏi iframe. Tính năng này tắt theo mặc định.
Hiển thị iframe cấu hình được quản lý trong bảng điều khiển của bạn
Tạo mã thông báo web
Sử dụng Enterprises.createWebToken
để tạo mã thông báo web giúp nhận dạng doanh nghiệp. Bạn phải đưa vào
mã trả về cùng với các thông số khác khi hiển thị iframe trong
Google Play. Ví dụ sau đây cho thấy cách truy xuất mã thông báo bằng lệnh Google
Phát Thư viện ứng dụng API EMM cho Java.
public AdministratorWebToken getAdministratorWebToken(
String enterpriseId,
AdministratorWebTokenSpec tokenSpec) throws IOException {
return androidEnterprise
.enterprise()
.createWebToken(enterpriseId, tokenSpec)
.execute();
}
Hiển thị iframe
Dưới đây là ví dụ về cách hiển thị iframe cấu hình được quản lý:
<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>
Thông số URL
Bảng dưới đây liệt kê tất cả các tham số có sẵn cho URL iframe.
Thông số | Bắt buộc | Mô tả |
---|---|---|
token |
Có | Mã thông báo được trả về từ Enterprises.createWebToken . |
packageName |
Có | Mã sản phẩm của ứng dụng. Ví dụ:
com.google.android.gm . |
mcmId |
Không | Mã của một hồ sơ cấu hình được quản lý. |
canDelete |
Không | Nếu TRUE, hãy bật một nút trong iframe cho phép CNTT quản trị viên để xoá hồ sơ cấu hình được quản lý. Nếu FALSE (giá trị mặc định), nút này bị tắt. |
locale |
Không | Định dạng hợp lệ BCP 47 ngôn ngữ dùng để bản địa hoá nội dung trong iframe. Nếu không đã chỉ định, giá trị mặc định là en_US. |
Sự kiện iframe
Bạn cũng nên xử lý các sự kiện sau trong quá trình tích hợp.
Sự kiện | Mô tả |
---|---|
onconfigupdated |
Người dùng cập nhật hồ sơ cấu hình được quản lý hiện có hoặc tạo một hồ sơ mới
một. Thao tác này trả về một đối tượng chứa:
{ "mcmId": The ID of the managed configurations profile. "name": The name of the updated or newly created managed configurations profile. } |
onconfigdeleted |
Người dùng xoá một hồ sơ cấu hình được quản lý hiện có. Kết quả trả về
một đối tượng chứa:
{ "mcmId": The ID of the managed configurations profile. } |
Ví dụ dưới đây minh hoạ cách nghe onconfigupdated
:
iframe.register('onconfigupdated', function(event) {
console.log(event);
}, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER);
Nội dung cập nhật đối với giản đồ cấu hình được quản lý của một ứng dụng
Nếu nhà phát triển cập nhật giản đồ cấu hình được quản lý của một ứng dụng, biểu đồ sẽ lưu hồ sơ cấu hình được cập nhật tự động. Ví dụ: nếu nhà phát triển xoá một tuỳ chọn, thì tuỳ chọn này sẽ bị xoá khỏi tất cả cấu hình hiện có hồ sơ cho ứng dụng. Nếu nhà phát triển thêm một tuỳ chọn, thì giá trị mặc định cho tuỳ chọn tuỳ chọn (do nhà phát triển xác định) sẽ được thêm vào tất cả cấu hình hiện có hồ sơ cho ứng dụng.
Áp dụng cấu hình được quản lý cho người dùng thiết bị
Để tìm hiểu cách áp dụng cấu hình được quản lý cho người dùng thiết bị, xem Áp dụng cấu hình được quản lý.
Tìm hiểu hành vi chọn/bỏ chọn
iframe cấu hình được quản lý hiện cho phép quản trị viên CNTT bỏ chọn một cách rõ ràng các hạn chế ứng dụng của một cấu hình được quản lý khi không cần đến. Chiến dịch này là sự thay đổi so với hành vi trước đó và có thể có tác động đến những hạn chế nào được gửi đến ứng dụng của bạn dựa trên lựa chọn của quản trị viên.
Phần dưới đây trình bày cách iframe cấu hình được quản lý hoạt động với mẫu bỏ chọn mới này và những dữ liệu mà nhà phát triển có thể sẽ nhận được trong cấu hình được quản lý của họ.
Sử dụng giá trị mặc định cho quy định hạn chế đối với ứng dụng
Nếu ứng dụng hạn chế thuộc loại bool, lựa chọn, số nguyên, chọn nhiều câu trả lời hoặc chuỗi đều được cung cấp giá trị mặc định, thì giá trị mặc định sẽ được áp dụng làm giá trị của giới hạn ứng dụng khi quản trị viên lưu cấu hình được quản lý mà không áp dụng mọi thay đổi đối với quy định hạn chế đối với ứng dụng đó.
Ví dụ: với giản đồ hạn chế ứng dụng sau đây:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"defaultValue": {
"type": "bool",
"valueBool": false
}
}]
Các hạn chế ứng dụng gửi đến thiết bị sẽ là:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"value": {
"type": "bool",
"valueBool": false
}
}]
Không dùng giá trị mặc định cho các hạn chế đối với ứng dụng
Nếu ứng dụng hạn chế thuộc loại bool, lựa chọn, số nguyên, chọn nhiều câu trả lời hoặc chuỗi không được cung cấp giá trị mặc định, thì các hạn chế này đối với ứng dụng sẽ không được được bao gồm khi quản trị viên lưu cấu hình được quản lý mà không áp dụng bất kỳ thay đổi nào về hạn chế ứng dụng đó.
Ví dụ: với giản đồ hạn chế ứng dụng sau đây:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool"
// defaultValue absent.
}]
Các hạn chế ứng dụng gửi đến thiết bị sẽ là:
"restrictions": [
// Empty
]
Sử dụng gói trong giản đồ
Phần này áp dụng cho gói hạn chế ứng dụng:
Có ít nhất một quy định hạn chế đối với ứng dụng con có giá trị mặc định trong quy tắc hạn chế ứng dụng theo gói
Nếu nằm trong gói hạn chế ứng dụng ít nhất một trong các hạn chế đối với ứng dụng con thuộc loại bool, lựa chọn, số nguyên, chọn nhiều câu trả lời hoặc chuỗi đều được cung cấp giá trị mặc định, thì giá trị mặc định sẽ được áp dụng làm giá trị giá trị hạn chế của ứng dụng và những ứng dụng không có giá trị mặc định sẽ bị loại trừ khi quản trị viên lưu cấu hình được quản lý mà không áp dụng bất kỳ thay đổi nào đối với cấu hình đó hạn chế ứng dụng.
"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.
}
]
}]
Các hạn chế ứng dụng gửi đến thiết bị sẽ là:
"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.
]
}]
Tất cả các hạn chế đối với ứng dụng con đều không có giá trị mặc định
Nếu nằm trong gói hạn chế ứng dụng, tất cả các hạn chế đối với ứng dụng con bằng loại bool, lựa chọn, số nguyên, chọn nhiều câu trả lời hoặc chuỗi không được cung cấp giá trị mặc định, gói chế độ hạn chế ứng dụng sẽ không được đưa vào khi quản trị viên lưu cấu hình được quản lý mà không áp dụng bất kỳ thay đổi nào đối với quy tắc hạn chế đối với ứng dụng đó.
Ví dụ: với giản đồ hạn chế ứng dụng sau đây:
"restrictions": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key_1",
"restrictionType": "bool",
// defaultValue absent.
},
{
"key": "bool_key_2",
"restrictionType": "bool"
// defaultValue absent.
}
]
}]
Các hạn chế ứng dụng gửi đến thiết bị sẽ là:
"restrictions": [
// Empty
]
Sử dụng bundle_array trong giản đồ của bạn
Phần này áp dụng cho bundle_array hạn chế ứng dụng. Việc này sẽ không phù hợp nếu các hạn chế ứng dụng con thuộc loại bool, lựa chọn, số nguyên, chọn nhiều câu trả lời hoặc chuỗi có giá trị mặc định.
Ví dụ: với giản đồ hạn chế ứng dụng sau đây:
"restrictions": [{
"key": "bundle_array_key",
"restrictionType": "bundleArray",
"nestedRestriction": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key",
"restrictionType": "bool",
"defaultValue": {
"type": "bool",
"valueBool": true
}
}]
}]
}]
Có ít nhất một nhóm gói trong quy định hạn chế của ứng dụng bundle_array
Nếu có ít nhất một gói nhóm được đặt, thì bundle_array chế độ hạn chế ứng dụng sẽ được đưa vào khi quản trị viên lưu cấu hình được quản lý.
Các hạn chế ứng dụng gửi đến thiết bị sẽ là:
"restrictions": [{
"key": "bundle_array_key",
"restrictionType": "bundleArray",
"nestedRestriction": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key",
"restrictionType": "bool",
"value": {
"type": "bool",
"valueBool": true
}
}]
}]
}]
Không có nhóm gói trong quy định hạn chế của ứng dụng bundle_array
bundle_array chế độ hạn chế ứng dụng sẽ không được đưa vào khi quản trị viên lưu cấu hình được quản lý mà không cần thêm gói nhóm. Các hạn chế ứng dụng gửi đến thiết bị sẽ là:
"restrictions": [
// Empty
]