# @ohos.enterprise.browser(浏览器管理)
本模块提供浏览器管理能力,包括设置/取消浏览器策略、获取浏览器策略等。
浏览器策略指通过配置或管理浏览器行为的一系列规则和设置,以确保安全性、合规性、性能优化和用户体验的一致性。
> **说明:**
>
> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
> 本模块接口仅可在Stage模型下使用。
>
> 本模块接口仅对设备管理应用开放,且调用接口前需激活设备管理应用,具体请参考[MDM Kit开发指南](../../mdm/mdm-kit-guide.md)。
## 导入模块
```ts
import { browser } from '@kit.MDMKit';
```
## browser.setPolicySync
setPolicySync(admin: Want, appId: string, policyName: string, policyValue: string): void
为指定的浏览器设置浏览器子策略。
**需要权限:** ohos.permission.ENTERPRISE_SET_BROWSER_POLICY
**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
| admin | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是 | 企业设备管理扩展组件。 |
| appId | string | 是 | 应用ID,用于指定浏览器。 |
| policyName | string | 是 | 浏览器子策略名。当此值为空字符串时,表示设置应用ID对应的浏览器策略。 |
| policyValue | string | 是 | 浏览器子策略值。当此值为空字符串时,表示取消浏览器策略名对应浏览器子策略。 |
**错误码**:
以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 9200001 | The application is not an administrator application of the device. |
| 9200002 | The administrator application does not have permission to manage the device. |
| 201 | Permission verification failed. The application does not have the permission required to call the API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
**示例:**
```ts
import { browser } from '@kit.MDMKit';
import { Want } from '@kit.AbilityKit';
let wantTemp: Want = {
// 需根据实际情况进行替换
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility'
};
// 此处参数appId的赋值应替换为开发者自己指定的浏览器的应用ID
let appId: string = 'com.example.******_******/******5t5CoBM=';
let policyName: string = 'InsecurePrivateNetworkRequestsAllowed';
let policyValue: string = '{"level":"mandatory","scope":"machine","source":"platform","value":true}';
try {
browser.setPolicySync(wantTemp, appId, policyName, policyValue);
console.info('Succeeded in setting browser policies.');
} catch (err) {
console.error(`Failed to set browser policies. Code is ${err.code}, message is ${err.message}`);
}
```
## browser.getPoliciesSync
getPoliciesSync(admin: Want, appId: string): string
通过appid获取指定浏览器设置的策略。
**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------------------------------------------------- | ---- | ------------------------ |
| admin | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是 | 企业设备管理扩展组件。 |
| appId | string | 是 | 应用ID,用于指定浏览器。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------ |
| string | 浏览器策略。 |
**错误码**:
以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 9200001 | The application is not an administrator application of the device. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
**示例:**
```ts
import { browser } from '@kit.MDMKit';
import { Want } from '@kit.AbilityKit';
let wantTemp: Want = {
// 需根据实际情况进行替换
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility'
};
// 此处参数appId的赋值应替换为开发者自己指定的浏览器的应用ID
let appId: string = 'com.example.******_******/******5t5CoBM=';
try {
let result: string = browser.getPoliciesSync(wantTemp, appId);
console.info(`Succeeded in getting browser policies, result : ${JSON.stringify(result)}`);
} catch(err) {
console.error(`Failed to get browser policies. Code is ${err.code}, message is ${err.message}`);
}
```
## browser.setManagedBrowserPolicy15+
setManagedBrowserPolicy(admin: Want, bundleName: string, policyName: string, policyValue: string): void
为指定的浏览器设置浏览器策略,成功后会发布系统公共事件[COMMON_EVENT_MANAGED_BROWSER_POLICY_CHANGED](../apis-basic-services-kit/common_event/commonEventManager-definitions.md#common_event_managed_browser_policy_changed)。
**需要权限:** ohos.permission.ENTERPRISE_SET_BROWSER_POLICY
**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
| admin | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是 | 企业设备管理扩展组件。 |
| bundleName | string | 是 | 应用包名,用于指定浏览器。 |
| policyName | string | 是 | 浏览器策略名。 |
| policyValue | string | 是 | 浏览器策略值。当此值为空字符串时,表示取消浏览器策略名对应浏览器子策略。 |
**错误码**:
以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 9200001 | The application is not an administrator application of the device. |
| 9200002 | The administrator application does not have permission to manage the device. |
| 201 | Permission verification failed. The application does not have the permission required to call the API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
**示例:**
```ts
import { browser } from '@kit.MDMKit';
import { Want } from '@kit.AbilityKit';
let wantTemp: Want = {
// 需根据实际情况进行替换
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility'
};
// 需根据实际情况进行替换
let bundleName: string = 'com.example.testbrowser';
let policyName: string = 'InsecurePrivateNetworkRequestsAllowed';
let policyValue: string = '{"level":"mandatory","scope":"machine","source":"platform","value":true}';
try {
browser.setManagedBrowserPolicy(wantTemp, bundleName, policyName, policyValue);
console.info('Succeeded in setting managed browser policy.');
} catch (err) {
console.error(`Failed to set managed browser policy. Code is ${err.code}, message is ${err.message}`);
}
```
## browser.getManagedBrowserPolicy15+
getManagedBrowserPolicy(admin: Want, bundleName: string): ArrayBuffer
通过应用包名获取指定浏览器的浏览器策略。
**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----------- | ------------------------------------------------------- | ---- | ------------------------ |
| admin | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是 | 企业设备管理扩展组件。 |
| bundleName | string | 是 | 应用包名,用于指定浏览器。 |
**返回值:**
| 类型 | 说明 |
| ----------- | ------------ |
| ArrayBuffer | 浏览器策略。 |
**错误码**:
以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 9200001 | The application is not an administrator application of the device. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
**示例:**
```ts
import { browser } from '@kit.MDMKit';
import { Want } from '@kit.AbilityKit';
import { util } from '@kit.ArkTS';
let wantTemp: Want = {
// 需根据实际情况进行替换
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility'
};
// 需根据实际情况进行替换
let bundleName: string = 'com.example.testbrowser';
try {
let buffer: ArrayBuffer = browser.getManagedBrowserPolicy(wantTemp, bundleName);
let intBuffer: Uint8Array = new Uint8Array(buffer);
let decoder: util.TextDecoder = util.TextDecoder.create('utf-8');
let stringData: string = decoder.decodeToString(intBuffer);
console.info(`Succeeded in getting managed browser policy, result : ${stringData}`);
} catch(err) {
console.error(`Failed to get managed browser policy. Code is ${err.code}, message is ${err.message}`);
}
```
## browser.getSelfManagedBrowserPolicyVersion15+
getSelfManagedBrowserPolicyVersion(): string
获取指定浏览器的浏览器策略版本。
**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**返回值:**
| 类型 | 说明 |
| ------ | ------------ |
| string | 浏览器策略版本。 |
**示例:**
```ts
import { browser } from '@kit.MDMKit';
try {
let version: string = browser.getSelfManagedBrowserPolicyVersion();
console.info(`Succeeded in getting self managed browser policy version, result : ${version}`);
} catch(err) {
console.error(`Failed to get self managed browser policy version. Code is ${err.code}, message is ${err.message}`);
}
```
## browser.getSelfManagedBrowserPolicy15+
getSelfManagedBrowserPolicy(): ArrayBuffer
获取当前设备浏览器策略。
**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**返回值:**
| 类型 | 说明 |
| ----------- | ------------ |
| ArrayBuffer | 浏览器策略。 |
**示例:**
```ts
import { browser } from '@kit.MDMKit';
import { util } from '@kit.ArkTS';
try {
let buffer: ArrayBuffer = browser.getSelfManagedBrowserPolicy();
let intBuffer: Uint8Array = new Uint8Array(buffer);
let decoder: util.TextDecoder = util.TextDecoder.create('utf-8');
let stringData: string = decoder.decodeToString(intBuffer);
console.info(`Succeeded in getting self managed browser policy, result : ${stringData}`);
} catch(err) {
console.error(`Failed to get self managed browser policy. Code is ${err.code}, message is ${err.message}`);
}
```