From 8670efde7ecc90dea7f5fab50dab7c5bfcfc6e1a Mon Sep 17 00:00:00 2001 From: zhaoyuan Date: Wed, 29 Sep 2021 18:27:11 +0000 Subject: [PATCH] add develop guaid Signed-off-by: zhaoyuan --- zh-cn/application-dev/js-reference/Bundle.md | 1328 +++++++++++++ .../js-reference/CommonEvent.md | 508 +++++ zh-cn/application-dev/js-reference/Context.md | 542 ++++++ .../js-reference/DataUriUtils.md | 131 ++ .../js-reference/FeatureAbility.md | 913 +++++++++ .../js-reference/Notification.md | 1676 +++++++++++++++++ .../js-reference/ParticleAbility.md | 411 ++++ .../js-reference/dataAbilityHelper.md | 837 ++++++++ ...00\345\217\221\346\214\207\345\215\227.md" | 522 +++++ ...00\345\217\221\346\214\207\345\215\227.md" | 1583 ++++++++++++++++ ...00\345\217\221\350\257\264\346\230\216.md" | 129 ++ ...00\345\217\221\350\257\264\346\230\216.md" | 189 ++ ...72\344\270\216\350\256\277\351\227\256.md" | 192 ++ 13 files changed, 8961 insertions(+) create mode 100644 zh-cn/application-dev/js-reference/Bundle.md create mode 100644 zh-cn/application-dev/js-reference/CommonEvent.md create mode 100644 zh-cn/application-dev/js-reference/Context.md create mode 100644 zh-cn/application-dev/js-reference/DataUriUtils.md create mode 100644 zh-cn/application-dev/js-reference/FeatureAbility.md create mode 100644 zh-cn/application-dev/js-reference/Notification.md create mode 100644 zh-cn/application-dev/js-reference/ParticleAbility.md create mode 100644 zh-cn/application-dev/js-reference/dataAbilityHelper.md create mode 100644 "zh-cn/application-dev/quick-start/CommonEvent\345\274\200\345\217\221\346\214\207\345\215\227.md" create mode 100644 "zh-cn/application-dev/quick-start/Notification\345\274\200\345\217\221\346\214\207\345\215\227.md" create mode 100644 "zh-cn/application-dev/quick-start/PageAbility\345\274\200\345\217\221\350\257\264\346\230\216.md" create mode 100644 "zh-cn/application-dev/quick-start/ServiceAbility\345\274\200\345\217\221\350\257\264\346\230\216.md" create mode 100644 "zh-cn/application-dev/quick-start/\345\237\272\344\272\216Native\347\232\204DataAbility\345\210\233\345\273\272\344\270\216\350\256\277\351\227\256.md" diff --git a/zh-cn/application-dev/js-reference/Bundle.md b/zh-cn/application-dev/js-reference/Bundle.md new file mode 100644 index 0000000000..38df3d405d --- /dev/null +++ b/zh-cn/application-dev/js-reference/Bundle.md @@ -0,0 +1,1328 @@ +### Bundle模块(JS端SDK接口) + +#### 支持设备 + +| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 | +| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | ------------ | +| Bundle.getApplicationInfo(bundleName: string, bundleFlags: number, userId: number) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getApplicationInfo(bundleName: string, bundleFlags: number, userId: number, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getAllBundleInfo(bundlelFlag: BundleFlag) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getAllBundleInfo(bundlelFlag: BundleFlag, callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getBundleInfo(bundleName: string, bundleFlags: number) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getBundleInfo(bundleName: string, bundleFlags: number, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getAllApplicationInfo(bundleFlags: number, userId: number) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getAllApplicationInfo(bundleFlags: number, userId: number, callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.queryAbilityByWant(want: Want, bundleFlags: number, userId: number) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.queryAbilityByWant(want: Want, bundleFlags: number, userId: number, callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getPermissionDef(permissionName: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getPermissionDef(permissionName: string, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getBundleArchiveInfo(hapFilePath: string, flags: number) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getBundleArchiveInfo(hapFilePath: string, flags: number, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getBundleInstaller().install(bundleFilePaths: Array, param: InstallParam, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getBundleInstaller().uninstall(bundleName: string, param: InstallParam, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getAllShortcutInfo(bundleName: string): Promise> | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Bundle.getAllShortcutInfo(bundleName: string, callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| getModuleUsageRecords(maxNum: number): Promise> | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| getModuleUsageRecords(maxNum: number, callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| checkPermission(bundleName: string, permission: string): Promise | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| checkPermission(bundleName: string, permission: string, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | + +#### 权限列表 + +- + +#### 导入模块 + +``` +import bundle from '@ohos.bundle'; +``` + + + +#### getApplicationInfo(bundleName: string, bundleFlags: number, userId: number) + +* 功能说明 + + 根据给定的bundle名称获取ApplicationInfo + +* getApplicationInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | ------ | ---- | ------------------------------------------------------- | + | bundleName | 只读 | string | 是 | 应用名 | + | bundleFlags | 只读 | number | 是 | 0:返回默认app信息<
8:返回包含permissions的app信息 | + | userId | 只读 | number | 是 | 用户ID | + +* 返回值 + + Promise:返回值为Promise对象,Promise中包含应用信息。 + +* 示例 + +``` +bundle.getApplicationInfo('com.example.myapplicationInstall', 8, 0).then((data) => { + console.info("name: for begin"); + console.info("name:" + data.name); + console.info("bundleName:" + data.bundleName); + console.info("description:" + data.description); + console.info("descriptionId:" + data.descriptionId); + console.info("iconPath:" + data.iconPath); + console.info("iconId:" + data.iconId); + console.info("label:" + data.label); + console.info("labelId:" + data.labelId); + console.info("deviceId:" + data.deviceId); + console.info("signatureKey:" + data.signatureKey); + console.info("process:" + data.process); + console.info("isSystemApp:" + data.isSystemApp); + console.info("isLauncherApp:" + data.isLauncherApp); + console.info("supportedModes:" + data.supportedModes); + + console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); + for (var j = 0; j < data.permissions.length; j++) { + console.info("permissions[" + j + "]:" + data.permissions[j]); + } + console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); + for (var j = 0; j < data.moduleSourceDirs.length; j++) { + console.info("moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); + } + console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); + for (var j = 0; j < data.moduleInfos.length; j++) { + console.info("moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); + console.info("moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); + } + console.info("entryDir:" + data.entryDir); + console.info("codePath:" + data.codePath); + console.info("dataDir:" + data.dataDir); + console.info("dataBaseDir:" + data.dataBaseDir); + console.info("cacheDir:" + data.cacheDir); +}) +``` + + + +#### getApplicationInfo(bundleName: string, bundleFlags: number, userId: number, callback: AsyncCallback) + +* 功能说明 + + 根据给定的bundle名称获取ApplicationInfo + +* getApplicationInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | ------------------------------ | ---- | ------------------------------------------------------- | + | bundleName | 只读 | string | 是 | 应用名 | + | bundleFlags | 只读 | number | 是 | 0:返回默认app信息<
8:返回包含permissions的app信息 | + | userId | 只读 | number | 是 | 用户ID | + | callback | 只读 | AsyncCallback | 是 | 回调方法 | + +* 返回值 + + void + +* 示例 + +``` +bundle.getApplicationInfo('com.example.myapplicationInstall', 8, 0, OnReceiveEvent); + +function OnReceiveEvent(err, data) { + console.info("name: for begin"); + console.info("name:" + data.name); + console.info("bundleName:" + data.bundleName); + console.info("description:" + data.description); + console.info("descriptionId:" + data.descriptionId); + console.info("iconPath:" + data.iconPath); + console.info("iconId:" + data.iconId); + console.info("label:" + data.label); + console.info("labelId:" + data.labelId); + console.info("deviceId:" + data.deviceId); + console.info("signatureKey:" + data.signatureKey); + console.info("process:" + data.process); + console.info("isSystemApp:" + data.isSystemApp); + console.info("isLauncherApp:" + data.isLauncherApp); + console.info("supportedModes:" + data.supportedModes); + + console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); + for (var j = 0; j < data.permissions.length; j++) { + console.info("permissions[" + j + "]:" + data.permissions[j]); + } + console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); + for (var j = 0; j < data.moduleSourceDirs.length; j++) { + console.info("moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); + } + console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); + for (var j = 0; j < data.moduleInfos.length; j++) { + console.info("moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); + console.info("moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); + } + console.info("entryDir:" + data.entryDir); + console.info("codePath:" + data.codePath); + console.info("dataDir:" + data.dataDir); + console.info("dataBaseDir:" + data.dataBaseDir); + console.info("cacheDir:" + data.cacheDir); +} +``` + + + +#### getAllBundleInfo(bundleFlag: BundleFlag) + +* 功能说明 + + 获取系统中所有可用的包信息 + +* getAllBundleInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | ---------- | ---- | ----------------------------------------------------------- | + | bundleFlag | 只读 | BundleFlag | 是 | 0:返回默认BundleInfo
1:返回包含abilityInfo的BundleInfo | + +* 返回值 + + Promise>:返回值为Promise对象,Promise中包含包信息列表。 + +* 示例 + +``` +bundle.getAllBundleInfo(0).then((data) => { + for (var i = 0; i < data.length; i++) { + console.info("index[" + i + "].name: for begin"); + console.info("index[" + i + "].name:" + data[i].name); + console.info("index[" + i + "].label:" + data[i].label); + console.info("index[" + i + "].description:" + data[i].description); + console.info("index[" + i + "].vendor:" + data[i].vendor); + console.info("index[" + i + "].versionCode:" + data[i].versionCode); + console.info("index[" + i + "].versionName:" + data[i].versionName); + console.info("index[" + i + "].jointUserId:" + data[i].jointUserId); + console.info("index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); + console.info("index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); + console.info("index[" + i + "].mainEntry:" + data[i].mainEntry); + console.info("index[" + i + "].cpuAbi:" + data[i].cpuAbi); + console.info("index[" + i + "].appId:" + data[i].appId); + console.info("index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); + console.info("index[" + i + "].targetVersion:" + data[i].targetVersion); + console.info("index[" + i + "].releaseType:" + data[i].releaseType); + console.info("index[" + i + "].uid:" + data[i].uid); + console.info("index[" + i + "].gid:" + data[i].gid); + console.info("index[" + i + "].seInfo:" + data[i].seInfo); + console.info("index[" + i + "].entryModuleName:" + data[i].entryModuleName); + console.info("index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); + console.info("index[" + i + "].isNativeApp:" + data[i].isNativeApp); + console.info("index[" + i + "].installTime:" + data[i].installTime); + console.info("index[" + i + "].updateTime:" + data[i].updateTime); + console.info("index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); + console.info("index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); + console.info('getAllBundleInfo reqPermissions length [' + data[i].reqPermissions.length + ']'); + for (var j = 0; j < data[i].reqPermissions.length; j++) { + console.info("index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); + } + console.info('getAllBundleInfo defPermissions length [' + data[i].defPermissions.length + ']'); + for (var j = 0; j < data[i].defPermissions.length; j++) { + console.info("index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); + } + + console.info('getAllBundleInfo hapModuleNames length [' + data[i].hapModuleNames.length + ']'); + for (var j = 0; j < data[i].hapModuleNames.length; j++) { + console.info("index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); + } + console.info('getAllBundleInfo moduleNames length [' + data[i].moduleNames.length + ']'); + for (var j = 0; j < data[i].moduleNames.length; j++) { + console.info("index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); + } + console.info('getAllBundleInfo modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); + for (var j = 0; j < data[i].modulePublicDirs.length; j++) { + console.info("index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); + } + console.info('getAllBundleInfo moduleDirs length [' + data[i].moduleDirs.length + ']'); + for (var j = 0; j < data[i].moduleDirs.length; j++) { + console.info("index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); + } + console.info('getAllBundleInfo moduleResPaths length [' + data[i].moduleResPaths.length + ']'); + for (var j = 0; j < data[i].moduleResPaths.length; j++) { + console.info("index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); + } + console.info('getAllBundleInfo abilityInfo length [' + data[i].abilityInfos.length + ']'); + for (var j = 0; j < data[i].abilityInfos.length; j++) { + console.info("index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); + console.info("index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); + } + } +}) +``` + + + +#### getAllBundleInfo(bundleFlag: BundleFlag, callback: AsyncCallback>) + +* 功能说明 + + 获取系统中所有可用的包信息 + +* getAllBundleInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | -------------------------------- | ---- | ------------------------------------------------------------ | + | bundleFlag | 只读 | BundleFlag | 是 | 0:返回默认BundleInfo
1:返回包含abilityInfo的BundleInfo | + | callback | 只读 | AsyncCallback> | 是 | 回调方法 | + +* 返回值 + + void + +* 示例 + +``` +bundle.getAllBundleInfo(0, OnReceiveEvent); + +function OnReceiveEvent(err, data) { + console.info('xxx getAllBundleInfo data length [' + data.length + ']'); + for (var i = 0; i < data.length; i++) { + console.info("index[" + i + "].name: for begin"); + console.info("index[" + i + "].name:" + data[i].name); + console.info("index[" + i + "].label:" + data[i].label); + console.info("index[" + i + "].description:" + data[i].description); + console.info("index[" + i + "].vendor:" + data[i].vendor); + console.info("index[" + i + "].versionCode:" + data[i].versionCode); + console.info("index[" + i + "].versionName:" + data[i].versionName); + console.info("index[" + i + "].jointUserId:" + data[i].jointUserId); + console.info("index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); + console.info("index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); + console.info("index[" + i + "].mainEntry:" + data[i].mainEntry); + console.info("index[" + i + "].cpuAbi:" + data[i].cpuAbi); + console.info("index[" + i + "].appId:" + data[i].appId); + console.info("index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); + console.info("index[" + i + "].targetVersion:" + data[i].targetVersion); + console.info("index[" + i + "].releaseType:" + data[i].releaseType); + console.info("index[" + i + "].uid:" + data[i].uid); + console.info("index[" + i + "].gid:" + data[i].gid); + console.info("index[" + i + "].seInfo:" + data[i].seInfo); + console.info("index[" + i + "].entryModuleName:" + data[i].entryModuleName); + console.info("index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); + console.info("index[" + i + "].isNativeApp:" + data[i].isNativeApp); + console.info("index[" + i + "].installTime:" + data[i].installTime); + console.info("index[" + i + "].updateTime:" + data[i].updateTime); + console.info("index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); + console.info("index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); + console.info('getAllBundleInfo reqPermissions length [' + data[i].reqPermissions.length + ']'); + for (var j = 0; j < data[i].reqPermissions.length; j++) { + console.info("index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); + } + console.info('getAllBundleInfo defPermissions length [' + data[i].defPermissions.length + ']'); + for (var j = 0; j < data[i].defPermissions.length; j++) { + console.info("index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); + } + + console.info('getAllBundleInfo hapModuleNames length [' + data[i].hapModuleNames.length + ']'); + for (var j = 0; j < data[i].hapModuleNames.length; j++) { + console.info("index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); + } + console.info('getAllBundleInfo moduleNames length [' + data[i].moduleNames.length + ']'); + for (var j = 0; j < data[i].moduleNames.length; j++) { + console.info("index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); + } + console.info('getAllBundleInfo modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); + for (var j = 0; j < data[i].modulePublicDirs.length; j++) { + console.info("index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); + } + console.info('getAllBundleInfo moduleDirs length [' + data[i].moduleDirs.length + ']'); + for (var j = 0; j < data[i].moduleDirs.length; j++) { + console.info("index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); + } + console.info('getAllBundleInfo moduleResPaths length [' + data[i].moduleResPaths.length + ']'); + for (var j = 0; j < data[i].moduleResPaths.length; j++) { + console.info("index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); + } + console.info('getAllBundleInfo abilityInfo length [' + data[i].abilityInfos.length + ']'); + for (var j = 0; j < data[i].abilityInfos.length; j++) { + console.info("index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); + console.info("index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); + } + } +} +``` + + + +#### getBundleInfo(bundleName: string, bundleFlags: number) + +* 功能说明 + + 根据bundle名称获取BundleInfo + +* getBundleInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | ------ | ---- | ------------------------------------------------------------ | + | bundleName | 只读 | string | 是 | 包名 | + | bundleFlags | 只读 | number | 是 | 0:返回默认BundleInfo
1:返回包含abilityInfo的BundleInfo | + +* 返回值 + + Promise:返回值为Promise对象,Promise中包含包信息。 + +* 示例 + +``` +bundle.getBundleInfo('com.example.myapplicationInstall', 1).then((data) => { + console.info("name:" + data.name); + console.info("label:" + data.label); + console.info("description:" + data.description); + console.info("vendor:" + data.vendor); + console.info("versionCode:" + data.versionCode); + console.info("versionName:" + data.versionName); + console.info("jointUserId:" + data.jointUserId); + console.info("minSdkVersion:" + data.minSdkVersion); + console.info("maxSdkVersion:" + data.maxSdkVersion); + console.info("mainEntry:" + data.mainEntry); + console.info("cpuAbi:" + data.cpuAbi); + console.info("appId:" + data.appId); + console.info("compatibleVersion:" + data.compatibleVersion); + console.info("targetVersion:" + data.targetVersion); + console.info("releaseType:" + data.releaseType); + console.info("uid:" + data.uid); + console.info("gid:" + data.gid); + console.info("seInfo:" + data.seInfo); + console.info("entryModuleName:" + data.entryModuleName); + console.info("isKeepAlive:" + data.isKeepAlive); + console.info("isNativeApp:" + data.isNativeApp); + console.info("installTime:" + data.installTime); + console.info("updateTime:" + data.updateTime); + console.info("appInfo.name:" + data.applicationInfo.name); + console.info("appInfo.bundleName:" + data.applicationInfo.bundleName); + console.info('getBundleInfo reqPermissions length [' + data.reqPermissions.length + ']'); + for (var j = 0; j < data.reqPermissions.length; j++) { + console.info("reqPermissions[" + j + "]:" + data.reqPermissions[j]); + } + console.info('getBundleInfo defPermissions length [' + data.defPermissions.length + ']'); + for (var j = 0; j < data.defPermissions.length; j++) { + console.info("defPermissions[" + j + "]:" + data.defPermissions[j]); + } + + console.info('getBundleInfo hapModuleNames length [' + data.hapModuleNames.length + ']'); + for (var j = 0; j < data.hapModuleNames.length; j++) { + console.info("hapModuleNames[" + j + "]:" + data.hapModuleNames[j]); + } + console.info('getBundleInfo moduleNames length [' + data.moduleNames.length + ']'); + for (var j = 0; j < data.moduleNames.length; j++) { + console.info("moduleNames[" + j + "]:" + data.moduleNames[j]); + } + console.info('getBundleInfo modulePublicDirs length [' + data.modulePublicDirs.length + ']'); + for (var j = 0; j < data.modulePublicDirs.length; j++) { + console.info("modulePublicDirs[" + j + "]:" + data.modulePublicDirs[j]); + } + console.info('getBundleInfo moduleDirs length [' + data.moduleDirs.length + ']'); + for (var j = 0; j < data.moduleDirs.length; j++) { + console.info("moduleDirs[" + j + "]:" + data.moduleDirs[j]); + } + console.info('getBundleInfo moduleResPaths length [' + data.moduleResPaths.length + ']'); + for (var j = 0; j < data.moduleResPaths.length; j++) { + console.info("moduleResPaths[" + j + "]:" + data.moduleResPaths[j]); + } + console.info('getBundleInfo abilityInfo length [' + data.abilityInfos.length + ']'); + for (var j = 0; j < data.abilityInfos.length; j++) { + console.info("abilityInfos[" + j + "]name:" + data.abilityInfos[j].name); + console.info("abilityInfos[" + j + "]package:" + data.abilityInfos[j].package); + } +}) +``` + + + +#### getBundleInfo(bundleName: string, bundleFlags: number, callback: AsyncCallback) + +* 功能说明 + + 根据bundle名称获取BundleInfo + +* getBundleInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | ------------------------- | ---- | ------------------------------------------------------------ | + | bundleName | 只读 | string | 是 | 包名 | + | bundleFlags | 只读 | number | 是 | 0:返回默认BundleInfo
1:返回包含abilityInfo的BundleInfo | + | callback | 只读 | AsyncCallback | 是 | 回调方法 | + +* 返回值 + + void + +* 示例 + +``` +bundle.getBundleInfo('com.example.myapplicationInstall', 1, OnReceiveEvent); + +function OnReceiveEvent(err, data) { + console.info("name:" + data.name); + console.info("label:" + data.label); + console.info("description:" + data.description); + console.info("vendor:" + data.vendor); + console.info("versionCode:" + data.versionCode); + console.info("versionName:" + data.versionName); + console.info("jointUserId:" + data.jointUserId); + console.info("minSdkVersion:" + data.minSdkVersion); + console.info("maxSdkVersion:" + data.maxSdkVersion); + console.info("mainEntry:" + data.mainEntry); + console.info("cpuAbi:" + data.cpuAbi); + console.info("appId:" + data.appId); + console.info("compatibleVersion:" + data.compatibleVersion); + console.info("targetVersion:" + data.targetVersion); + console.info("releaseType:" + data.releaseType); + console.info("uid:" + data.uid); + console.info("gid:" + data.gid); + console.info("seInfo:" + data.seInfo); + console.info("entryModuleName:" + data.entryModuleName); + console.info("isKeepAlive:" + data.isKeepAlive); + console.info("isNativeApp:" + data.isNativeApp); + console.info("installTime:" + data.installTime); + console.info("updateTime:" + data.updateTime); + console.info("appInfo.name:" + data.applicationInfo.name); + console.info("appInfo.bundleName:" + data.applicationInfo.bundleName); + console.info('getBundleInfo reqPermissions length [' + data.reqPermissions.length + ']'); + for (var j = 0; j < data.reqPermissions.length; j++) { + console.info("reqPermissions[" + j + "]:" + data.reqPermissions[j]); + } + console.info('getBundleInfo defPermissions length [' + data.defPermissions.length + ']'); + for (var j = 0; j < data.defPermissions.length; j++) { + console.info("defPermissions[" + j + "]:" + data.defPermissions[j]); + } + + console.info('getBundleInfo hapModuleNames length [' + data.hapModuleNames.length + ']'); + for (var j = 0; j < data.hapModuleNames.length; j++) { + console.info("hapModuleNames[" + j + "]:" + data.hapModuleNames[j]); + } + console.info('getBundleInfo moduleNames length [' + data.moduleNames.length + ']'); + for (var j = 0; j < data.moduleNames.length; j++) { + console.info("moduleNames[" + j + "]:" + data.moduleNames[j]); + } + console.info('getBundleInfo modulePublicDirs length [' + data.modulePublicDirs.length + ']'); + for (var j = 0; j < data.modulePublicDirs.length; j++) { + console.info("modulePublicDirs[" + j + "]:" + data.modulePublicDirs[j]); + } + console.info('getBundleInfo moduleDirs length [' + data.moduleDirs.length + ']'); + for (var j = 0; j < data.moduleDirs.length; j++) { + console.info("moduleDirs[" + j + "]:" + data.moduleDirs[j]); + } + console.info('getBundleInfo moduleResPaths length [' + data.moduleResPaths.length + ']'); + for (var j = 0; j < data.moduleResPaths.length; j++) { + console.info("moduleResPaths[" + j + "]:" + data.moduleResPaths[j]); + } + console.info('getBundleInfo abilityInfo length [' + data.abilityInfos.length + ']'); + for (var j = 0; j < data.abilityInfos.length; j++) { + console.info("abilityInfos[" + j + "]name:" + data.abilityInfos[j].name); + console.info("abilityInfos[" + j + "]package:" + data.abilityInfos[j].package); + } +} +``` + + + +#### getAllApplicationInfo(bundleFlags: number, userId: number) + +* 功能说明 + + 获取指定用户下所有已安装的应用信息 + +* getAllApplicationInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | ------ | ---- | ------------------------------------------------------- | + | bundleFlags | 只读 | number | 是 | 0:返回默认app信息<
8:返回包含permissions的app信息 | + | userId | 只读 | number | 是 | 用户ID | + +* 返回值 + + Promise>:返回值为Promise对象,Promise中包含应用信息列表。 + +* 示例 + +``` +bundle.getAllApplicationInfo(8, 0).then((data) => { + console.info('xxx getAllApplicationInfo data length [' + data.length + ']'); + for (var i = 0; i < data.length; i++) { + console.info("index[" + i + "].name: for begin"); + console.info("index[" + i + "].name:" + data[i].name); + console.info("index[" + i + "].bundleName:" + data[i].bundleName); + console.info("index[" + i + "].description:" + data[i].description); + console.info("index[" + i + "].descriptionId:" + data[i].descriptionId); + console.info("index[" + i + "].iconPath:" + data[i].iconPath); + console.info("index[" + i + "].iconId:" + data[i].iconId); + console.info("index[" + i + "].label:" + data[i].label); + console.info("index[" + i + "].labelId:" + data[i].labelId); + console.info("index[" + i + "].deviceId:" + data[i].deviceId); + console.info("index[" + i + "].signatureKey:" + data[i].signatureKey); + console.info("index[" + i + "].process:" + data[i].process); + console.info("index[" + i + "].isSystemApp:" + data[i].isSystemApp); + console.info("index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); + console.info("index[" + i + "].supportedModes:" + data[i].supportedModes); + + console.info('getAllApplicationInfo Async permissions length [' + data[i].permissions.length + ']'); + for (var j = 0; j < data[i].permissions.length; j++) { + console.info("index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); + } + console.info('getAllApplicationInfo Async moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); + for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { + console.info("index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); + } + console.info('getAllApplicationInfo Async moduleInfos length [' + data[i].moduleInfos.length + ']'); + for (var j = 0; j < data[i].moduleInfos.length; j++) { + console.info("index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); + console.info("index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); + } + console.info("index[" + i + "].entryDir:" + data[i].entryDir); + console.info("index[" + i + "].codePath:" + data[i].codePath); + console.info("index[" + i + "].dataDir:" + data[i].dataDir); + console.info("index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); + console.info("index[" + i + "].cacheDir:" + data[i].cacheDir); + } +}) +``` + + + +#### getAllApplicationInfo(bundleFlags: number, userId: number, callback: AsyncCallback>) + +* 功能说明 + + 获取指定用户下所有已安装的应用信息 + +* getAllApplicationInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | ------------------------------------- | ---- | ------------------------------------------------------- | + | bundleFlags | 只读 | number | 是 | 0:返回默认app信息<
8:返回包含permissions的app信息 | + | userId | 只读 | number | 是 | 用户ID | + | callback | 只读 | AsyncCallback> | 是 | 回调方法 | + +* 返回值 + + void + +* 示例 + +``` +bundle.getAllApplicationInfo(8, 0, OnReceiveEvent); + +function OnReceiveEvent(err, data) { + console.info('xxx getAllApplicationInfo data length [' + data.length + ']'); + for (var i = 0; i < data.length; i++) { + console.info("index[" + i + "].name: for begin"); + console.info("index[" + i + "].name:" + data[i].name); + console.info("index[" + i + "].bundleName:" + data[i].bundleName); + console.info("index[" + i + "].description:" + data[i].description); + console.info("index[" + i + "].descriptionId:" + data[i].descriptionId); + console.info("index[" + i + "].iconPath:" + data[i].iconPath); + console.info("index[" + i + "].iconId:" + data[i].iconId); + console.info("index[" + i + "].label:" + data[i].label); + console.info("index[" + i + "].labelId:" + data[i].labelId); + console.info("index[" + i + "].deviceId:" + data[i].deviceId); + console.info("index[" + i + "].signatureKey:" + data[i].signatureKey); + console.info("index[" + i + "].process:" + data[i].process); + console.info("index[" + i + "].isSystemApp:" + data[i].isSystemApp); + console.info("index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); + console.info("index[" + i + "].supportedModes:" + data[i].supportedModes); + + console.info('getAllApplicationInfo Async permissions length [' + data[i].permissions.length + ']'); + for (var j = 0; j < data[i].permissions.length; j++) { + console.info("index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); + } + console.info('getAllApplicationInfo Async moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); + for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { + console.info("index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); + } + console.info('getAllApplicationInfo Async moduleInfos length [' + data[i].moduleInfos.length + ']'); + for (var j = 0; j < data[i].moduleInfos.length; j++) { + console.info("index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); + console.info("index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); + } + console.info("index[" + i + "].entryDir:" + data[i].entryDir); + console.info("index[" + i + "].codePath:" + data[i].codePath); + console.info("index[" + i + "].dataDir:" + data[i].dataDir); + console.info("index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); + console.info("index[" + i + "].cacheDir:" + data[i].cacheDir); + } +} +``` + + + +#### queryAbilityByWant(want: Want, bundleFlags: number, userId: number) + +* 功能说明 + + 通过Want获取对应的Ability信息 + +* queryAbilityInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | ------ | ---- | ------------------------------------------------------------ | + | want | 只读 | Want | 是 | 指定Want信息 | + | bundleFlags | 只读 | number | 是 | 0:返回默认BundleInfo
1:返回包含abilityInfo的BundleInfo | + | userId | 只读 | number | 是 | 用户ID | + +* Want类型说明 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | -------------------- | ---- | ------------------------------------------------------------ | + | elementName | 只读 | ElementName | 是 | 表示运行指定Ability的ElementName。 | + | uri | 只读 | string | 否 | 表示Uri描述。 | + | flags | 只读 | int | 否 | Ability的flag,表示处理Want的方式。 | + | type | 只读 | string | 否 | Want中的type属性是指由Want的URI所指示的资源的MIME类型。 | + | action | 只读 | string | 否 | 表示动作,通常使用系统预置Action,应用也可以自定义Action。 | + | want_param | 只读 | {[key: string]: any} | 否 | want_param是一种支持自定义的数据结构,开发者可以通过want_param传递某些请求所需的额外信息。 | + | entities | 只读 | Array | 否 | 表示类别,通常使用系统预置Entity,应用也可以自定义Entity。 | + +* ElementName类型说明 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | ------ | ---- | ------------------------------------------------------------ | + | deviceId | 只读 | string | 否 | 表示运行指定Ability的设备ID。 | + | bundleName | 只读 | string | 是 | 表示包描述。如果在Want中同时指定了BundleName和AbilityName,则Want可以直接匹配到指定的Ability。 | + | abilityName | 只读 | string | 是 | 表示待启动的Ability名称。如果在Want中同时指定了BundleName和AbilityName,则Want可以直接匹配到指定的Ability。 | + +* 返回值 + + Promise>:返回值为Promise对象,Promise中包含Ability信息。 + +* 示例 + +``` +bundle.queryAbilityByWant({ + want: { + action: "action.system.home", + entities: ["entity.system.home"], + elementName: { + deviceId: "0", + bundleName: "com.example.myapplicationInstall", + abilityName: "com.example.myapplication.MainAbility", + }, + } +}, 1, 0, +}).then((data) => { + console.info("name:" + data.name); + console.info("label:" + data.label); + console.info("description:" + data.description); + console.info("iconPath:" + data.iconPath); + console.info("visible:" + data.visible); + console.info("kind:" + data.kind); + console.info("uri:" + data.uri); + console.info("process:" + data.process); + console.info("package:" + data.package); + console.info("bundleName:" + data.bundleName); + console.info("moduleName:" + data.moduleName); + console.info("applicationName:" + data.applicationName); + console.info("deviceId:" + data.deviceId); + console.info("codePath:" + data.codePath); + console.info("resourcePath:" + data.resourcePath); + console.info("libPath:" + data.libPath); + + console.info('queryAbilityInfo permissions length [' + data.permissions.length + ']'); + for (var j = 0; j < data.permissions.length; j++) { + console.info("permissions[" + j + "]:" + data.permissions[j]); + } + console.info('queryAbilityInfo deviceTypes length [' + data.deviceTypes.length + ']'); + for (var j = 0; j < data.deviceTypes.length; j++) { + console.info("deviceTypes[" + j + "]:" + data.deviceTypes[j]); + } + console.info('queryAbilityInfo deviceCapabilities length [' + data.deviceCapabilities.length + ']'); + for (var j = 0; j < data.deviceCapabilities.length; j++) { + console.info("deviceCapabilities[" + j + "]:" + data.deviceCapabilities[j]); + } + console.info("appInfo.name:" + data.applicationInfo.name); + console.info("appInfo.bundleName:" + data.applicationInfo.bundleName); + // ability type: 0:UNKNOWN, 1:PAGE, 2:SERVICE, 3:DATA + console.info("type:" + data.type); + // orientation: 0:UNSPECIFIED, 1:LANDSCAPE, 2:PORTRAIT, 3:FOLLOWRECENT, + console.info("orientation:" + data.orientation); + // launchMode: 0:SINGLETON, 1:SINGLETOP, 2:STANDARD + console.info("launchMode:" + data.launchMode); + + // the enum of AbilityType + console.info("AbilityType:" + bundle.AbilityType.UNKNOWN); + console.info("AbilityType:" + bundle.AbilityType.PAGE); + console.info("AbilityType:" + bundle.AbilityType.SERVICE); + console.info("AbilityType:" + bundle.AbilityType.DATA); + if (data.type == bundle.AbilityType.PAGE) { + console.info("this AbilityType is PAGE"); + } + // the enum of DisplayOrientation + console.info("DisplayOrientation:" + bundle.DisplayOrientation.UNSPECIFIED); + console.info("DisplayOrientation:" + bundle.DisplayOrientation.LANDSCAPE); + console.info("DisplayOrientation:" + bundle.DisplayOrientation.PORTRAIT); + console.info("DisplayOrientation:" + bundle.DisplayOrientation.FOLLOWRECENT); + if (data.orientation == bundle.DisplayOrientation.UNSPECIFIED) { + console.info("this DisplayOrientation is UNSPECIFIED"); + } + // the enum of LaunchMode + console.info("LaunchMode:" + bundle.LaunchMode.SINGLETON); + console.info("LaunchMode:" + bundle.LaunchMode.SINGLETOP); + console.info("LaunchMode:" + bundle.LaunchMode.STANDARD); + if (data.launchMode == bundle.LaunchMode.STANDARD) { + console.info("this LaunchMode is STANDARD"); + } + +}) +``` + + + +#### queryAbilityByWant(want: Want, bundleFlags: number, userId: number, callback: AsyncCallback>) + +* 功能说明 + + 通过Want获取对应的Ability信息 + +* queryAbilityInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | --------------------------------- | ---- | ------------------------------------------------------------ | + | want | 只读 | Want | 是 | 指定Want信息 | + | bundleFlags | 只读 | number | 是 | 0:返回默认BundleInfo
1:返回包含abilityInfo的BundleInfo | + | userId | 只读 | number | 是 | 用户ID | + | callback | 只读 | AsyncCallback> | 是 | 回调方法 | + +* Want类型说明 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | -------------------- | ---- | ------------------------------------------------------------ | + | elementName | 只读 | ElementName | 是 | 表示运行指定Ability的ElementName。 | + | uri | 只读 | string | 否 | 表示Uri描述。 | + | flags | 只读 | int | 否 | Ability的flag,表示处理Want的方式。 | + | type | 只读 | string | 否 | Want中的type属性是指由Want的URI所指示的资源的MIME类型。 | + | action | 只读 | string | 否 | 表示动作,通常使用系统预置Action,应用也可以自定义Action。 | + | want_param | 只读 | {[key: string]: any} | 否 | want_param是一种支持自定义的数据结构,开发者可以通过want_param传递某些请求所需的额外信息。 | + | entities | 只读 | Array | 否 | 表示类别,通常使用系统预置Entity,应用也可以自定义Entity。 | + +* ElementName类型说明 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | ------ | ---- | ------------------------------------------------------------ | + | deviceId | 只读 | string | 否 | 表示运行指定Ability的设备ID。 | + | bundleName | 只读 | string | 是 | 表示包描述。如果在Want中同时指定了BundleName和AbilityName,则Want可以直接匹配到指定的Ability。 | + | abilityName | 只读 | string | 是 | 表示待启动的Ability名称。如果在Want中同时指定了BundleName和AbilityName,则Want可以直接匹配到指定的Ability。 | + +* 返回值 + + void + +* 示例 + +``` +bundle.queryAbilityByWant( + { + want: { + action: "action.system.home", + entities: ["entity.system.home"], + elementName: { + deviceId: "0", + bundleName: "com.example.myapplicationInstall", + abilityName: "com.example.myapplication.MainAbility", + }, + } + }, 1, 0, + }, OnReceiveEvent); + +function OnReceiveEvent(err, data) { + console.info("name:" + data.name); + console.info("label:" + data.label); + console.info("description:" + data.description); + console.info("iconPath:" + data.iconPath); + console.info("visible:" + data.visible); + console.info("kind:" + data.kind); + console.info("uri:" + data.uri); + console.info("process:" + data.process); + console.info("package:" + data.package); + console.info("bundleName:" + data.bundleName); + console.info("moduleName:" + data.moduleName); + console.info("applicationName:" + data.applicationName); + console.info("deviceId:" + data.deviceId); + console.info("codePath:" + data.codePath); + console.info("resourcePath:" + data.resourcePath); + console.info("libPath:" + data.libPath); + + console.info('queryAbilityInfo permissions length [' + data.permissions.length + ']'); + for (var j = 0; j < data.permissions.length; j++) { + console.info("permissions[" + j + "]:" + data.permissions[j]); + } + console.info('queryAbilityInfo deviceTypes length [' + data.deviceTypes.length + ']'); + for (var j = 0; j < data.deviceTypes.length; j++) { + console.info("deviceTypes[" + j + "]:" + data.deviceTypes[j]); + } + console.info('queryAbilityInfo deviceCapabilities length [' + data.deviceCapabilities.length + ']'); + for (var j = 0; j < data.deviceCapabilities.length; j++) { + console.info("deviceCapabilities[" + j + "]:" + data.deviceCapabilities[j]); + } + console.info("appInfo.name:" + data.applicationInfo.name); + console.info("appInfo.bundleName:" + data.applicationInfo.bundleName); + // ability type: 0:UNKNOWN, 1:PAGE, 2:SERVICE, 3:DATA + console.info("type:" + data.type); + // orientation: 0:UNSPECIFIED, 1:LANDSCAPE, 2:PORTRAIT, 3:FOLLOWRECENT, + console.info("orientation:" + data.orientation); + // launchMode: 0:SINGLETON, 1:SINGLETOP, 2:STANDARD + console.info("launchMode:" + data.launchMode); + + // the enum of AbilityType + console.info("AbilityType:" + bundle.AbilityType.UNKNOWN); + console.info("AbilityType:" + bundle.AbilityType.PAGE); + console.info("AbilityType:" + bundle.AbilityType.SERVICE); + console.info("AbilityType:" + bundle.AbilityType.DATA); + if (data.type == bundle.AbilityType.PAGE) { + console.info("this AbilityType is PAGE"); + } + // the enum of DisplayOrientation + console.info("DisplayOrientation:" + bundle.DisplayOrientation.UNSPECIFIED); + console.info("DisplayOrientation:" + bundle.DisplayOrientation.LANDSCAPE); + console.info("DisplayOrientation:" + bundle.DisplayOrientation.PORTRAIT); + console.info("DisplayOrientation:" + bundle.DisplayOrientation.FOLLOWRECENT); + if (data.orientation == bundle.DisplayOrientation.UNSPECIFIED) { + console.info("this DisplayOrientation is UNSPECIFIED"); + } + // the enum of LaunchMode + console.info("LaunchMode:" + bundle.LaunchMode.SINGLETON); + console.info("LaunchMode:" + bundle.LaunchMode.SINGLETOP); + console.info("LaunchMode:" + bundle.LaunchMode.STANDARD); + if (data.launchMode == bundle.LaunchMode.STANDARD) { + console.info("this LaunchMode is STANDARD"); + } +} +``` + + + +#### getPermissionDef(permissionName: string) + +* 功能说明 + + 获取指定权限的详细信息 + +* getPermissionDef参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------------- | -------- | ------ | ---- | ------ | + | permissionName | 只读 | string | 是 | 权限名 | + +* 返回值 + + Promise:返回值为bundle信息。 + +* 示例 + +``` +bundle.getPermissionDef('com.permission.CAMERA').then((data) => { + console.info("permissionName:" + data.permissionName); + console.info("bundleName:" + data.bundleName); + console.info("grantMode:" + data.grantMode); + console.info("availableScope:" + data.availableScope); + console.info("label:" + data.label); + console.info("labelId:" + data.labelId); +}) +``` + + + +#### getPermissionDef(permissionName: string, callback: AsyncCallback) + +* 功能说明 + + 获取指定权限的详细信息 + +* getPermissionDef参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------------- | -------- | ---------------------------- | ---- | -------- | + | permissionName | 只读 | string | 是 | 权限名 | + | callback | 只读 | AsyncCallback | 是 | 回调方法 | + +* 返回值 + + void + +* 示例 + +``` +bundle.getBundleInstaller().then((data) => { + data.getPermissionDef('com.permission.CAMERA', OnReceiveEvent); + + function OnReceiveEvent(err, data) { + console.info("permissionName:" + data.permissionName); + console.info("bundleName:" + data.bundleName); + console.info("grantMode:" + data.grantMode); + console.info("availableScope:" + data.availableScope); + console.info("label:" + data.label); + console.info("labelId:" + data.labelId); + } +}) +``` + + + +#### getBundleArchiveInfo(hapFilePath: string, bundleFlags: number) + +* 功能说明 + + 获取HAP包含的应用包信息 + +* getBundleArchiveInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | ------ | ---- | ------------------------------------------------------------ | + | hapFilePath | 只读 | string | 是 | hap包文件路径 | + | bundleFlags | 只读 | number | 是 | 0:返回默认BundleInfo
1:返回包含abilityInfo的BundleInfo | + +* 返回值 + + Promise:返回值为bundle信息。 + +* 示例 + +``` +bundle.getBundleArchiveInfo('/data/test.hap', 1).then((data) => { + console.info("name:" + data.name); + console.info("label:" + data.label); + console.info("description:" + data.description); + console.info("vendor:" + data.vendor); + console.info("versionCode:" + data.versionCode); + console.info("versionName:" + data.versionName); + console.info("jointUserId:" + data.jointUserId); + console.info("minSdkVersion:" + data.minSdkVersion); + console.info("maxSdkVersion:" + data.maxSdkVersion); + console.info("mainEntry:" + data.mainEntry); + console.info("cpuAbi:" + data.cpuAbi); + console.info("appId:" + data.appId); + console.info("compatibleVersion:" + data.compatibleVersion); + console.info("targetVersion:" + data.targetVersion); + console.info("releaseType:" + data.releaseType); + console.info("uid:" + data.uid); + console.info("gid:" + data.gid); + console.info("seInfo:" + data.seInfo); + console.info("entryModuleName:" + data.entryModuleName); + console.info("isKeepAlive:" + data.isKeepAlive); + console.info("isNativeApp:" + data.isNativeApp); + console.info("installTime:" + data.installTime); + console.info("updateTime:" + data.updateTime); + console.info("appInfo.name:" + data.applicationInfo.name); + console.info("appInfo.bundleName:" + data.applicationInfo.bundleName); + console.info('getBundleArchiveInfo reqPermissions length [' + data.reqPermissions.length + ']'); + for (var j = 0; j < data.reqPermissions.length; j++) { + console.info("reqPermissions[" + j + "]:" + data.reqPermissions[j]); + } + console.info('getBundleArchiveInfo defPermissions length [' + data.defPermissions.length + ']'); + for (var j = 0; j < data.defPermissions.length; j++) { + console.info("defPermissions[" + j + "]:" + data.defPermissions[j]); + } + console.info('getBundleArchiveInfo hapModuleNames length [' + data.hapModuleNames.length + ']'); + for (var j = 0; j < data.hapModuleNames.length; j++) { + console.info("hapModuleNames[" + j + "]:" + data.hapModuleNames[j]); + } + console.info('getBundleArchiveInfo moduleNames length [' + data.moduleNames.length + ']'); + for (var j = 0; j < data.moduleNames.length; j++) { + console.info("moduleNames[" + j + "]:" + data.moduleNames[j]); + } + console.info('getBundleArchiveInfo modulePublicDirs length [' + data.modulePublicDirs.length + ']'); + for (var j = 0; j < data.modulePublicDirs.length; j++) { + console.info("modulePublicDirs[" + j + "]:" + data.modulePublicDirs[j]); + } + console.info('getBundleArchiveInfo moduleDirs length [' + data.moduleDirs.length + ']'); + for (var j = 0; j < data.moduleDirs.length; j++) { + console.info("moduleDirs[" + j + "]:" + data.moduleDirs[j]); + } + console.info('getBundleArchiveInfo moduleResPaths length [' + data.moduleResPaths.length + ']'); + for (var j = 0; j < data.moduleResPaths.length; j++) { + console.info("moduleResPaths[" + j + "]:" + data.moduleResPaths[j]); + } + console.info('getBundleArchiveInfo abilityInfo length [' + data.abilityInfos.length + ']'); + for (var j = 0; j < data.abilityInfos.length; j++) { + console.info("abilityInfos[" + j + "]name:" + data.abilityInfos[j].name); + console.info("abilityInfos[" + j + "]package:" + data.abilityInfos[j].package); + } +}) +``` + + + +#### getBundleArchiveInfo(hapFilePath: string, bundleFlags: number, callback: AsyncCallback) + +* 功能说明 + + 获取HAP包含的应用包信息 + +* getBundleArchiveInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | ------------------------- | ---- | ------------------------------------------------------------ | + | hapFilePath | 只读 | string | 是 | hap包文件路径 | + | bundleFlags | 只读 | number | 是 | 0:返回默认BundleInfo
1:返回包含abilityInfo的BundleInfo | + | callback | 只读 | AsyncCallback | 是 | 回调方法 | + +* 返回值 + + void + +* 示例 + +``` +bundle.getBundleArchiveInfo('/data/test.hap', 1, OnReceiveEvent); + +function OnReceiveEvent(err, data) { + console.info("name:" + data.name); + console.info("label:" + data.label); + console.info("description:" + data.description); + console.info("vendor:" + data.vendor); + console.info("versionCode:" + data.versionCode); + console.info("versionName:" + data.versionName); + console.info("jointUserId:" + data.jointUserId); + console.info("minSdkVersion:" + data.minSdkVersion); + console.info("maxSdkVersion:" + data.maxSdkVersion); + console.info("mainEntry:" + data.mainEntry); + console.info("cpuAbi:" + data.cpuAbi); + console.info("appId:" + data.appId); + console.info("compatibleVersion:" + data.compatibleVersion); + console.info("targetVersion:" + data.targetVersion); + console.info("releaseType:" + data.releaseType); + console.info("uid:" + data.uid); + console.info("gid:" + data.gid); + console.info("seInfo:" + data.seInfo); + console.info("entryModuleName:" + data.entryModuleName); + console.info("isKeepAlive:" + data.isKeepAlive); + console.info("isNativeApp:" + data.isNativeApp); + console.info("installTime:" + data.installTime); + console.info("updateTime:" + data.updateTime); + console.info("appInfo.name:" + data.applicationInfo.name); + console.info("appInfo.bundleName:" + data.applicationInfo.bundleName); + console.info('getBundleArchiveInfo reqPermissions length [' + data.reqPermissions.length + ']'); + for (var j = 0; j < data.reqPermissions.length; j++) { + console.info("reqPermissions[" + j + "]:" + data.reqPermissions[j]); + } + console.info('getBundleArchiveInfo defPermissions length [' + data.defPermissions.length + ']'); + for (var j = 0; j < data.defPermissions.length; j++) { + console.info("defPermissions[" + j + "]:" + data.defPermissions[j]); + } + console.info('getBundleArchiveInfo hapModuleNames length [' + data.hapModuleNames.length + ']'); + for (var j = 0; j < data.hapModuleNames.length; j++) { + console.info("hapModuleNames[" + j + "]:" + data.hapModuleNames[j]); + } + console.info('getBundleArchiveInfo moduleNames length [' + data.moduleNames.length + ']'); + for (var j = 0; j < data.moduleNames.length; j++) { + console.info("moduleNames[" + j + "]:" + data.moduleNames[j]); + } + console.info('getBundleArchiveInfo modulePublicDirs length [' + data.modulePublicDirs.length + ']'); + for (var j = 0; j < data.modulePublicDirs.length; j++) { + console.info("modulePublicDirs[" + j + "]:" + data.modulePublicDirs[j]); + } + console.info('getBundleArchiveInfo moduleDirs length [' + data.moduleDirs.length + ']'); + for (var j = 0; j < data.moduleDirs.length; j++) { + console.info("moduleDirs[" + j + "]:" + data.moduleDirs[j]); + } + console.info('getBundleArchiveInfo moduleResPaths length [' + data.moduleResPaths.length + ']'); + for (var j = 0; j < data.moduleResPaths.length; j++) { + console.info("moduleResPaths[" + j + "]:" + data.moduleResPaths[j]); + } + console.info('getBundleArchiveInfo abilityInfo length [' + data.abilityInfos.length + ']'); + for (var j = 0; j < data.abilityInfos.length; j++) { + console.info("abilityInfos[" + j + "]name:" + data.abilityInfos[j].name); + console.info("abilityInfos[" + j + "]package:" + data.abilityInfos[j].package); + } +} +``` + + + +#### install(bundleFilePaths: Array, param: InstallParam, callback: AsyncCallback) + +* 功能说明 + + 安装hap包 + +* install参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | --------------- | -------- | ---------------------------- | ---- | ------------------------------------------------------------ | + | bundleFilePaths | 只读 | Array | 是 | 安装用包路径 | + | param | 只读 | InstallParam | 是 | userId:用户ID
installFlag:安装标识。
NORMAL:安装/卸载
REPLACE_EXISTING:更新
isKeepData:卸载时是否保留运行时数据 | + | callback | 只读 | AsyncCallback | 是 | 回调方法 | + +* 返回值 + + void + +* InstallStatus类型说明 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------- | -------- | ---------------- | ---- | ------------------------------------------------------------ | + | status | 只读 | InstallErrorCode | 是 | 安装结果code
SUCCESS = 0
STATUS_INSTALL_FAILURE = 1
STATUS_INSTALL_FAILURE_ABORTED = 2,
STATUS_INSTALL_FAILURE_INVALID = 3
STATUS_INSTALL_FAILURE_CONFLICT = 4
STATUS_INSTALL_FAILURE_STORAGE = 5
STATUS_INSTALL_FAILURE_INCOMPATIBLE = 6
STATUS_INSTALL_FAILURE_DOWNLOAD_TIMEOUT = 0x0B
STATUS_INSTALL_FAILURE_DOWNLOAD_FAILED = 0x0C
STATUS_ABILITY_NOT_FOUND = 0x40
STATUS_BMS_SERVICE_ERROR = 0x41 | + | statusMessage | 只读 | string | 是 | 安装结果Message | + +* 示例 + +``` +bundle.getBundleInstaller().then((data) => { + data.install(['/data/test.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err, data) { + console.info("name: for begin"); + console.info("install result code:" + data.status); + console.info("install result msg:" + data.statusMessage); + } +}) +``` + + + +#### uninstall(bundleName: string, param: InstallParam, callback: AsyncCallback) + +* 功能说明 + + 卸载hap包 + +* uninstall参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | ---------------------------- | ---- | ------------------------------------------------------------ | + | bundleName | 只读 | string | 是 | 卸载用包名 | + | param | 只读 | InstallParam | 是 | userId:用户ID
installFlag:安装标识。
NORMAL:安装/卸载
REPLACE_EXISTING:更新
isKeepData:卸载时是否保留运行时数据 | + | callback | 只读 | AsyncCallback | 是 | 回调方法 | + +* 返回值 + + void + +* InstallStatus类型说明 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------- | -------- | ---------------- | ---- | ------------------------------------------------------------ | + | status | 只读 | InstallErrorCode | 是 | 卸载结果code
SUCCESS = 0
STATUS_UNINSTALL_FAILURE = 7
STATUS_UNINSTALL_FAILURE_BLOCKED = 8
STATUS_UNINSTALL_FAILURE_ABORTED = 9,
STATUS_UNINSTALL_FAILURE_CONFLICT = 10
STATUS_ABILITY_NOT_FOUND = 0x40
STATUS_BMS_SERVICE_ERROR = 0x41 | + | statusMessage | 只读 | string | 是 | 卸载结果Message | + +* 示例 + +``` +bundle.getBundleInstaller().then((data) => { + data.uninstall('com.example.myapplication', { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err, data) { + console.info("name: for begin"); + console.info("uninstall result code:" + data.status); + console.info("uninstall result msg:" + data.statusMessage); + } +}) +``` + + + +#### getAllShortcutInfo(bundleName: string) + +* 功能说明 + + 获取指定bundle名的shortcut信息 + +* getAllShortcutInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | ------ | ---- | -------- | + | bundleName | 只读 | string | 是 | bundle名 | + +* 返回值 + + Promise:返回值为bundle信息。 + +* 示例 + +``` +bundle.getAllShortcutInfo('com.example.third1').then((data) => { + ... +}); +``` + + + +#### getAllShortcutInfo(bundleName: string, callback: AsyncCallback>) + +* 功能说明 + + 获取指定bundle名的shortcut信息 + +* getAllShortcutInfo参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | --------------------------- | ---- | -------- | + | bundleName | 只读 | string | 是 | bundle名 | + | callback | 只读 | AsyncCallback | 是 | 回调方法 | + +* 返回值 + + void + +* 示例 + +``` +bundle.getAllShortcutInfo('com.example.third1', OnReceiveEvent); + +function OnReceiveEvent(err, data) { + ... +} +``` + + + +#### checkPermission(bundleName: string, permission: string) + +* 功能说明 + + 获取指定最大记录数的Usage信息 + +* checkPermission参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | ------ | ---- | -------- | + | bundleName | 只读 | string | 是 | bundle名 | + | permission | 只读 | string | 是 | 权限名 | + +* 返回值 + + Promise:返回值为bundle信息。 + +* 示例 + +``` +bundle.getModuleUsageRecords('com.example.actsbmscheckpermissiontest', 'com.permission.CAMERA').then((data) => { + ... +}); +``` + + + +#### checkPermission(bundleName: string, permission: string, callback: AsyncCallback) + +* 功能说明 + + 获取指定最大记录数的Usage信息 + +* checkPermission参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | -------------------------- | ---- | -------- | + | bundleName | 只读 | string | 是 | bundle名 | + | permission | 只读 | string | 是 | 权限名 | + | callback | 只读 | AsyncCallback | 是 | 回调方法 | + +* 返回值 + + void + +* 示例 + +``` +bundle.checkPermission('com.example.actsbmscheckpermissiontest', 'com.permission.CAMERA', OnReceiveEvent); + +function OnReceiveEvent(err, data) { + ... +} +``` diff --git a/zh-cn/application-dev/js-reference/CommonEvent.md b/zh-cn/application-dev/js-reference/CommonEvent.md new file mode 100644 index 0000000000..afe70d6ead --- /dev/null +++ b/zh-cn/application-dev/js-reference/CommonEvent.md @@ -0,0 +1,508 @@ +CommonEvent模块(JS端SDK接口) + +#### 支持设备 + +| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | +| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | +| CommonEvent.publish(event: string, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.publish(event: string, options: CommonEventPublishData, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.createSubscriber(subscribeInfo: CommonEventSubscribeInfo, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.createSubscriber(subscribeInfo: CommonEventSubscribeInfo) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.subscribe(subscriber: CommonEventSubscriber, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.unsubscribe(subscriber: CommonEventSubscriber, callback?: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | + +#### 权限列表 + +| 系统公共事件宏 | 系统公共事件名称 | 订阅者所需权限 | +| ------------------------------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------ | +| COMMON_EVENT_BOOT_COMPLETED | usual.event.BOOT_COMPLETED | ohos.permission.RECEIVER_STARTUP_COMPLETED | +| COMMON_EVENT_LOCKED_BOOT_COMPLETED | usual.event.LOCKED_BOOT_COMPLETED | ohos.permission.RECEIVER_STARTUP_COMPLETED | +| COMMON_EVENT_SHUTDOWN | usual.event.SHUTDOWN | 无 | +| COMMON_EVENT_BATTERY_CHANGED | usual.event.BATTERY_CHANGED | 无 | +| COMMON_EVENT_BATTERY_LOW | usual.event.BATTERY_LOW | 无 | +| COMMON_EVENT_BATTERY_OKAY | usual.event.BATTERY_OKAY | 无 | +| COMMON_EVENT_POWER_CONNECTED | usual.event.POWER_CONNECTED | 无 | +| COMMON_EVENT_POWER_DISCONNECTED | usual.event.POWER_DISCONNECTED | 无 | +| COMMON_EVENT_SCREEN_OFF | usual.event.SCREEN_OFF | 无 | +| COMMON_EVENT_SCREEN_ON | usual.event.SCREEN_ON | 无 | +| COMMON_EVENT_USER_PRESENT | usual.event.USER_PRESENT | 无 | +| COMMON_EVENT_TIME_TICK | usual.event.TIME_TICK | 无 | +| COMMON_EVENT_TIME_CHANGED | usual.event.TIME_CHANGED | 无 | +| COMMON_EVENT_DATE_CHANGED | usual.event.DATE_CHANGED | 无 | +| COMMON_EVENT_TIMEZONE_CHANGED | usual.event.TIMEZONE_CHANGED | 无 | +| COMMON_EVENT_CLOSE_SYSTEM_DIALOGS | usual.event.CLOSE_SYSTEM_DIALOGS | 无 | +| COMMON_EVENT_PACKAGE_ADDED | usual.event.PACKAGE_ADDED | 无 | +| COMMON_EVENT_PACKAGE_REPLACED | usual.event.PACKAGE_REPLACED | 无 | +| COMMON_EVENT_MY_PACKAGE_REPLACED | usual.event.MY_PACKAGE_REPLACED | 无 | +| COMMON_EVENT_PACKAGE_REMOVED | usual.event.PACKAGE_REMOVED | 无 | +| COMMON_EVENT_PACKAGE_FULLY_REMOVED | usual.event.PACKAGE_FULLY_REMOVED | 无 | +| COMMON_EVENT_PACKAGE_CHANGED | usual.event.PACKAGE_CHANGED | 无 | +| COMMON_EVENT_PACKAGE_RESTARTED | usual.event.PACKAGE_RESTARTED | 无 | +| COMMON_EVENT_PACKAGE_DATA_CLEARED | usual.event.PACKAGE_DATA_CLEARED | 无 | +| COMMON_EVENT_PACKAGES_SUSPENDED | usual.event.PACKAGES_SUSPENDED | 无 | +| COMMON_EVENT_PACKAGES_UNSUSPENDED | usual.event.PACKAGES_UNSUSPENDED | 无 | +| COMMON_EVENT_MY_PACKAGE_SUSPENDED | usual.event.MY_PACKAGE_SUSPENDED | 无 | +| COMMON_EVENT_MY_PACKAGE_UNSUSPENDED | usual.event.MY_PACKAGE_UNSUSPENDED | 无 | +| COMMON_EVENT_UID_REMOVED | usual.event.UID_REMOVED | 无 | +| COMMON_EVENT_PACKAGE_FIRST_LAUNCH | usual.event.PACKAGE_FIRST_LAUNCH | 无 | +| COMMON_EVENT_PACKAGE_NEEDS_VERIFICATION | usual.event.PACKAGE_NEEDS_VERIFICATION | 无 | +| COMMON_EVENT_PACKAGE_VERIFIED | usual.event.PACKAGE_VERIFIED | 无 | +| COMMON_EVENT_EXTERNAL_APPLICATIONS_AVAILABLE | usual.event.EXTERNAL_APPLICATIONS_AVAILABLE | 无 | +| COMMON_EVENT_EXTERNAL_APPLICATIONS_UNAVAILABLE | usual.event.EXTERNAL_APPLICATIONS_UNAVAILABLE | 无 | +| COMMON_EVENT_CONFIGURATION_CHANGED | usual.event.CONFIGURATION_CHANGED | 无 | +| COMMON_EVENT_LOCALE_CHANGED | usual.event.LOCALE_CHANGED | 无 | +| COMMON_EVENT_MANAGE_PACKAGE_STORAGE | usual.event.MANAGE_PACKAGE_STORAGE | 无 | +| COMMON_EVENT_DRIVE_MODE | common.event.DRIVE_MODE | 无 | +| COMMON_EVENT_HOME_MODE | common.event.HOME_MODE | 无 | +| COMMON_EVENT_OFFICE_MODE | common.event.OFFICE_MODE | 无 | +| COMMON_EVENT_USER_STARTED | usual.event.USER_STARTED | 无 | +| COMMON_EVENT_USER_BACKGROUND | usual.event.USER_BACKGROUND | 无 | +| COMMON_EVENT_USER_FOREGROUND | usual.event.USER_FOREGROUND | 无 | +| COMMON_EVENT_USER_SWITCHED | usual.event.USER_SWITCHED | ohos.permission.MANAGE_USERS | +| COMMON_EVENT_USER_STARTING | usual.event.USER_STARTING | ohos.permission.INTERACT_ACROSS_USERS | +| COMMON_EVENT_USER_UNLOCKED | usual.event.USER_UNLOCKED | 无 | +| COMMON_EVENT_USER_STOPPING | usual.event.USER_STOPPING | ohos.permission.INTERACT_ACROSS_USERS | +| COMMON_EVENT_USER_STOPPED | usual.event.USER_STOPPED | 无 | +| COMMON_EVENT_HWID_LOGIN | common.event.HWID_LOGIN | 无 | +| COMMON_EVENT_HWID_LOGOUT | common.event.HWID_LOGOUT | 无 | +| COMMON_EVENT_HWID_TOKEN_INVALID | common.event.HWID_TOKEN_INVALID | 无 | +| COMMON_EVENT_HWID_LOGOFF | common.event.HWID_LOGOFF | 无 | +| COMMON_EVENT_WIFI_POWER_STATE | usual.event.wifi.POWER_STATE | 无 | +| COMMON_EVENT_WIFI_SCAN_FINISHED | usual.event.wifi.SCAN_FINISHED | ohos.permission.LOCATION | +| COMMON_EVENT_WIFI_RSSI_VALUE | usual.event.wifi.RSSI_VALUE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_CONN_STATE | usual.event.wifi.CONN_STATE | 无 | +| COMMON_EVENT_WIFI_HOTSPOT_STATE | usual.event.wifi.HOTSPOT_STATE | 无 | +| COMMON_EVENT_WIFI_AP_STA_JOIN | usual.event.wifi.WIFI_HS_STA_JOIN | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_AP_STA_LEAVE | usual.event.wifi.WIFI_HS_STA_LEAVE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_MPLINK_STATE_CHANGE | usual.event.wifi.mplink.STATE_CHANGE | ohos.permission.MPLINK_CHANGE_STATE | +| COMMON_EVENT_WIFI_P2P_CONN_STATE | usual.event.wifi.p2p.CONN_STATE_CHANGE | ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION | +| COMMON_EVENT_WIFI_P2P_STATE_CHANGED | usual.event.wifi.p2p.STATE_CHANGE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_P2P_PEERS_STATE_CHANGED | usual.event.wifi.p2p.DEVICES_CHANGE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_P2P_PEERS_DISCOVERY_STATE_CHANGED | usual.event.wifi.p2p.PEER_DISCOVERY_STATE_CHANGE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_P2P_CURRENT_DEVICE_STATE_CHANGED | usual.event.wifi.p2p.CURRENT_DEVICE_CHANGE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_P2P_GROUP_STATE_CHANGED | usual.event.wifi.p2p.GROUP_STATE_CHANGED | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_BLUETOOTH_HANDSFREE_AG_CONNECT_STATE_UPDATE | usual.event.bluetooth.handsfree.ag.CONNECT_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HANDSFREE_AG_CURRENT_DEVICE_UPDATE | usual.event.bluetooth.handsfree.ag.CURRENT_DEVICE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HANDSFREE_AG_AUDIO_STATE_UPDATE | usual.event.bluetooth.handsfree.ag.AUDIO_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_CONNECT_STATE_UPDATE | usual.event.bluetooth.a2dpsource.CONNECT_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_CURRENT_DEVICE_UPDATE | usual.event.bluetooth.a2dpsource.CURRENT_DEVICE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_PLAYING_STATE_UPDATE | usual.event.bluetooth.a2dpsource.PLAYING_STATE_UPDATE" | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_AVRCP_CONNECT_STATE_UPDATE | usual.event.bluetooth.a2dpsource.AVRCP_CONNECT_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_CODEC_VALUE_UPDATE | usual.event.bluetooth.a2dpsource.CODEC_VALUE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_DISCOVERED | usual.event.bluetooth.remotedevice.DISCOVERED | ohos.permission.USE_BLUETOOTH and ohos.permission.LOCATION | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_CLASS_VALUE_UPDATE | usual.event.bluetooth.remotedevice.CLASS_VALUE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_ACL_CONNECTED | usual.event.bluetooth.remotedevice.ACL_CONNECTED | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_ACL_DISCONNECTED | usual.event.bluetooth.remotedevice.ACL_DISCONNECTED | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_NAME_UPDATE | usual.event.bluetooth.remotedevice.NAME_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_PAIR_STATE | usual.event.bluetooth.remotedevice.PAIR_STATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_BATTERY_VALUE_UPDATE | usual.event.bluetooth.remotedevice.BATTERY_VALUE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_SDP_RESULT | usual.event.bluetooth.remotedevice.SDP_RESULT | 无 | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_UUID_VALUE | usual.event.bluetooth.remotedevice.UUID_VALUE | ohos.permission.DISCOVER_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_PAIRING_REQ | usual.event.bluetooth.remotedevice.PAIRING_REQ | ohos.permission.DISCOVER_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_PAIRING_CANCEL | usual.event.bluetooth.remotedevice.PAIRING_CANCEL | 无 | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_CONNECT_REQ | usual.event.bluetooth.remotedevice.CONNECT_REQ | 无 | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_CONNECT_REPLY | usual.event.bluetooth.remotedevice.CONNECT_REPLY | 无 | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_CONNECT_CANCEL | usual.event.bluetooth.remotedevice.CONNECT_CANCEL | 无 | +| COMMON_EVENT_BLUETOOTH_HANDSFREEUNIT_CONNECT_STATE_UPDATE | usual.event.bluetooth.handsfreeunit.CONNECT_STATE_UPDATE | 无 | +| COMMON_EVENT_BLUETOOTH_HANDSFREEUNIT_AUDIO_STATE_UPDATE | usual.event.bluetooth.handsfreeunit.AUDIO_STATE_UPDATE | 无 | +| COMMON_EVENT_BLUETOOTH_HANDSFREEUNIT_AG_COMMON_EVENT | usual.event.bluetooth.handsfreeunit.AG_COMMON_EVENT | 无 | +| COMMON_EVENT_BLUETOOTH_HANDSFREEUNIT_AG_CALL_STATE_UPDATE | usual.event.bluetooth.handsfreeunit.AG_CALL_STATE_UPDATE | 无 | +| COMMON_EVENT_BLUETOOTH_HOST_STATE_UPDATE | usual.event.bluetooth.host.STATE_UPDATE | 无 | +| COMMON_EVENT_BLUETOOTH_HOST_REQ_DISCOVERABLE | usual.event.bluetooth.host.REQ_DISCOVERABLE | 无 | +| COMMON_EVENT_BLUETOOTH_HOST_REQ_ENABLE | usual.event.bluetooth.host.REQ_ENABLE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_REQ_DISABLE | usual.event.bluetooth.host.REQ_DISABLE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_SCAN_MODE_UPDATE | usual.event.bluetooth.host.SCAN_MODE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_DISCOVERY_STARTED | usual.event.bluetooth.host.DISCOVERY_STARTED | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_DISCOVERY_FINISHED | usual.event.bluetooth.host.DISCOVERY_FINISHED | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_NAME_UPDATE | usual.event.bluetooth.host.NAME_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSINK_CONNECT_STATE_UPDATE | usual.event.bluetooth.a2dpsink.CONNECT_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSINK_PLAYING_STATE_UPDATE | usual.event.bluetooth.a2dpsink.PLAYING_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSINK_AUDIO_STATE_UPDATE | usual.event.bluetooth.a2dpsink.AUDIO_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_NFC_ACTION_ADAPTER_STATE_CHANGED | usual.event.nfc.action.ADAPTER_STATE_CHANGED | 无 | +| COMMON_EVENT_NFC_ACTION_RF_FIELD_ON_DETECTED | usual.event.nfc.action.RF_FIELD_ON_DETECTED | ohos.permission.MANAGE_SECURE_SETTINGS | +| COMMON_EVENT_NFC_ACTION_RF_FIELD_OFF_DETECTED | usual.event.nfc.action.RF_FIELD_OFF_DETECTED | ohos.permission.MANAGE_SECURE_SETTINGS | +| COMMON_EVENT_DISCHARGING | usual.event.DISCHARGING | 无 | +| COMMON_EVENT_CHARGING | usual.event.CHARGING | 无 | +| COMMON_EVENT_DEVICE_IDLE_MODE_CHANGED | usual.event.DEVICE_IDLE_MODE_CHANGED | 无 | +| COMMON_EVENT_POWER_SAVE_MODE_CHANGED | usual.event.POWER_SAVE_MODE_CHANGED | 无 | +| COMMON_EVENT_USER_ADDED | usual.event.USER_ADDED | ohos.permission.MANAGE_USERS | +| COMMON_EVENT_USER_REMOVED | usual.event.USER_REMOVED | ohos.permission.MANAGE_USERS | +| COMMON_EVENT_ABILITY_ADDED | common.event.ABILITY_ADDED | ohos.permission.LISTEN_BUNDLE_CHANGE | +| COMMON_EVENT_ABILITY_REMOVED | common.event.ABILITY_REMOVED | ohos.permission.LISTEN_BUNDLE_CHANGE | +| COMMON_EVENT_ABILITY_UPDATED | common.event.ABILITY_UPDATED | ohos.permission.LISTEN_BUNDLE_CHANGE | +| COMMON_EVENT_LOCATION_MODE_STATE_CHANGED | usual.event.location.MODE_STATE_CHANGED | 无 | +| COMMON_EVENT_IVI_SLEEP | common.event.IVI_SLEEP | 无 | +| COMMON_EVENT_IVI_PAUSE | common.event.IVI_PAUSE | 无 | +| COMMON_EVENT_IVI_STANDBY | common.event.IVI_STANDBY | 无 | +| COMMON_EVENT_IVI_LASTMODE_SAVE | common.event.IVI_LASTMODE_SAVE | 无 | +| COMMON_EVENT_IVI_VOLTAGE_ABNORMAL | common.event.IVI_VOLTAGE_ABNORMAL | 无 | +| COMMON_EVENT_IVI_HIGH_TEMPERATURE | common.event.IVI_HIGH_TEMPERATURE | 无 | +| COMMON_EVENT_IVI_EXTREME_TEMPERATURE | common.event.IVI_EXTREME_TEMPERATURE | 无 | +| COMMON_EVENT_IVI_TEMPERATURE_ABNORMAL | common.event.IVI_TEMPERATURE_ABNORMAL | 无 | +| COMMON_EVENT_IVI_VOLTAGE_RECOVERY | common.event.IVI_VOLTAGE_RECOVERY | 无 | +| COMMON_EVENT_IVI_TEMPERATURE_RECOVERY | common.event.IVI_TEMPERATURE_RECOVERY | 无 | +| COMMON_EVENT_IVI_ACTIVE | common.event.IVI_ACTIVE | 无 | +| COMMON_EVENT_USB_DEVICE_ATTACHED | usual.event.hardware.usb.action.USB_DEVICE_ATTACHED | 无 | +| COMMON_EVENT_USB_DEVICE_DETACHED | usual.event.hardware.usb.action.USB_DEVICE_DETACHED | 无 | +| COMMON_EVENT_USB_ACCESSORY_ATTACHED | usual.event.hardware.usb.action.USB_ACCESSORY_ATTACHED | 无 | +| COMMON_EVENT_USB_ACCESSORY_DETACHED | usual.event.hardware.usb.action.USB_ACCESSORY_DETACHED | 无 | +| COMMON_EVENT_DISK_REMOVED | usual.event.data.DISK_REMOVED | ohos.permission.WRITE_USER_STORAGE or ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_UNMOUNTED | usual.event.data.DISK_UNMOUNTED | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_MOUNTED | usual.event.data.DISK_MOUNTED | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_BAD_REMOVAL | usual.event.data.DISK_BAD_REMOVAL | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_UNMOUNTABLE | usual.event.data.DISK_UNMOUNTABLE | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_EJECT | usual.event.data.DISK_EJECT | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_VISIBLE_ACCOUNTS_UPDATED | usual.event.data.VISIBLE_ACCOUNTS_UPDATED | ohos.permission.GET_APP_ACCOUNTS | +| COMMON_EVENT_ACCOUNT_DELETED | usual.event.data.ACCOUNT_DELETED | ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS | +| COMMON_EVENT_FOUNDATION_READY | common.event.FOUNDATION_READY | ohos.permission.RECEIVER_STARTUP_COMPLETED | +| COMMON_EVENT_AIRPLANE_MODE_CHANGED | usual.event.AIRPLANE_MODE | 无 | + +#### 导入模块 + +```js +import CommonEvent from '@ohos.commonevent'; +``` + + + +#### CommonEvent.publish(event: string, callback: AsyncCallback) + +- 接口说明 + + 发布公共事件(callback形式) + +* publish参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | event | 只读 | string | 是 | 表示要发送的公共事件 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + +* 返回值 + + void + +* 示例 + +```js +//发布公共事件回调 +function PublishCallBack(err) { + console.info("==========================>PublishCallBack=======================>"); + console.info("==========================>err:=======================>", err.code); +} +//发布公共事件 +CommonEvent.publish("publish_event", PublishCallBack); +``` + + + +#### CommonEvent.publish(event: string, options: CommonEventPublishData, callback: AsyncCallback) + +- 接口说明 + + 发布公共事件指定发布信息(callback形式) + +- publish参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ---------------------- | ---- | ---------------------- | + | event | 只读 | string | 是 | 表示要发布的公共事件 | + | options | 只读 | CommonEventPublishData | 是 | 表示发布公共事件的属性 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + +- CommonEventPublishData类型说明 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | --------------------- | -------- | -------------------- | ---- | ---------------------------- | + | bundleName | 只读 | string | 否 | 表示包名称 | + | code | 只读 | int | 否 | 表示公共事件的结果代码 | + | data | 只读 | string | 否 | 表示公共事件的自定义结果数据 | + | subscriberPermissions | 只读 | Array | 否 | 表示订阅者的权限 | + | isOrdered | 只读 | bool | 否 | 表示是否是有序事件 | + | parameters | 只读 | {[key: string]: any} | 否 | 表示公共事件的附加信息 | + +- 返回值 + + void + +- 示例 + +```js +//公共事件相关信息 +var options = { + code: 0; //公共事件的初始代码 + data: "initial data";//公共事件的初始数据 + isOrdered: true; //有序公共事件 +} +//发布公共事件回调 +function PublishCallBack(err) { + console.info("==========================>PublishCallBack=======================>"); +} +//发布公共事件 +CommonEvent.publish("publish_event", options, PublishCallBack); +``` + + + +#### CommonEvent.createSubscriber(subscribeInfo: CommonEventSubscribeInfo, callback: AsyncCallback) + +- 接口说明 + + 创建订阅者(callback形式) + +- createSubscriber参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------- | -------- | ------------------------------------ | ---- | ------------------------ | + | subscribeInfo | 只读 | CommonEventSubscribeInfo | 是 | 表示订阅信息 | + | callback | 只读 | AsyncCallback | 是 | 表示创建订阅者的回调方法 | + +- CommonEventSubscriber 类说明 + + | 名称 | 参数 | 返回值 | 描述 | + | --------------------- | --------------------------------------------------------- | --------------------------------- | ------------------------------------------------------------ | + | getCode | callback: AsyncCallback | void | 获取公共事件的结果代码(callback形式) | + | getCode | void | Promise | 获取公共事件的结果代码(Promise形式) | + | setCode | code: number, callback: AsyncCallback | void | 设置公共事件的结果代码(callback形式) | + | setCode | code: number | Promise | 设置公共事件的结果代码(Promise形式) | + | getData | callback: AsyncCallback | void | 获取公共事件的结果数据(callback形式) | + | getData | void | Promise | 获取公共事件的结果数据(Promise形式) | + | setData | data: string, callback: AsyncCallback | void | 设置公共事件的结果数据(callback形式) | + | setData | data: string | Promise | 设置公共事件的结果数据(Promise形式) | + | setCodeAndData | code: number, data: string, callback: AsyncCallback | void | 设置公共事件的结果代码和结果数据(callback形式) | + | setCodeAndData | code: number, data: string | Promise | 设置公共事件的结果代码和结果数据(Promise形式) | + | isOrderedCommonEvent | callback: AsyncCallback | void | 查询当前公共事件的是否为有序公共事件,返回true代表是有序公共事件,false代表不是有序公共事件(callback形式) | + | isOrderedCommonEvent | void | Promise | 查询当前公共事件的是否为有序公共事件,返回true代表是有序公共事件,false代表不是有序公共事件(Promise形式) | + | abortCommonEvent | callback: AsyncCallback | void | 取消当前的公共事件,仅对有序公共事件有效,取消后,公共事件不再向下一个订阅者传递(callback形式) | + | abortCommonEvent | void | Promise | 取消当前的公共事件,仅对有序公共事件有效,取消后,公共事件不再向下一个订阅者传递(Promise形式) | + | clearAbortCommonEvent | callback: AsyncCallback | void | 清除当前有序公共事件abort状态(callback形式) | + | clearAbortCommonEvent | void | Promise | 清除当前有序公共事件abort状态(Promise形式) | + | getAbortCommonEvent | callback: AsyncCallback | void | 获取当前有序公共事件是否取消的状态(callback形式) | + | getAbortCommonEvent | void | Promise | 获取当前有序公共事件是否取消的状态Promise形式) | + | getSubscribeInfo | callback: AsyncCallback | void | 获取订阅者的订阅信息(callback形式) | + | getSubscribeInfo | void | Promise | 获取订阅者的订阅信息(Promise形式) | + +- CommonEventSubscribeInfo类型说明 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------------- | -------- | ------------- | ---- | ------------------------------------------------------------ | + | events | 只读 | Array | 是 | 表示要订阅的公共事件 | + | publisherPermission | 只读 | string | 否 | 表示发布者的权限 | + | publisherDeviceId | 只读 | int | 否 | 表示设备ID,该值必须是同一ohos网络上的现有设备ID | + | userId | 只读 | int | 否 | 表示用户ID。此参数是可选的,默认值当前用户的ID。如果指定了此参数,则该值必须是系统中现有的用户ID。 | + | priority | 只读 | int | 否 | 表示订阅者的优先级,范围为-100~1000。 | + +- 返回值 + + void + +- 示例 + +```js +var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 +//订阅者信息 +var subscribeInfo = { + events: ["event"] +}; +//创建订阅者回调 +function CreateSubscriberCallBack(err, data) { + console.info("==========================>CreateSubscriberCallBack=======================>"); + subscriber = data; +} +//创建订阅者 +CommonEvent.createSubscriber(subscribeInfo, CreateSubscriberCallBack); +``` + + + +#### CommonEvent.createSubscriber(subscribeInfo: CommonEventSubscribeInfo) + +- 接口说明 + + 创建订阅者(Promise形式) + +- createSubscriber参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------- | -------- | ------------------------ | ---- | ------------ | + | subscribeInfo | 只读 | CommonEventSubscribeInfo | 是 | 表示订阅信息 | + +- CommonEventSubscribeInfo类型说明 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------------- | -------- | ------------- | ---- | ------------------------------------------------------------ | + | events | 只读 | Array | 是 | 表示要发送的公共事件 | + | publisherPermission | 只读 | string | 否 | 表示发布者的权限 | + | publisherDeviceId | 只读 | int | 否 | 表示设备ID,该值必须是同一ohos网络上的现有设备ID | + | userId | 只读 | int | 否 | 表示用户ID。此参数是可选的,默认值当前用户的ID。如果指定了此参数,则该值必须是系统中现有的用户ID。 | + | priority | 只读 | int | 否 | 表示订阅者的优先级。值的范围是-100到1000 | + +- 返回值 + + Promise + +- 示例 + +```js +var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 +//订阅者信息 +var subscribeInfo = { + events: ["event"] +}; +//创建订阅者 +CommonEvent.createSubscriber(subscribeInfo).then((data) => { + console.info("==========================>createSubscriberPromise=======================>"); + subscriber = data; +}); +``` + + + +#### CommonEvent.subscribe(subscriber: CommonEventSubscriber, callback: AsyncCallback) + +- 接口说明 + + 订阅公共事件(callback形式) + +- subscribe参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | ------------------------------ | ---- | ------------------------------ | + | subscriber | 只读 | CommonEventSubscriber | 是 | 表示订阅者对象 | + | callback | 只读 | AsyncCallback | 是 | 表示接收公共事件数据的回调函数 | + +- CommonEventData类型说明 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | -------------------- | ---- | ------------------------------------------------------- | + | event | 只读 | string | 是 | 表示当前接收的公共事件名称 | + | bundleName | 只读 | string | 否 | 表示包名称 | + | code | 只读 | int | 否 | 表示公共事件的结果代码,用于传递int类型的数据 | + | data | 只读 | string | 否 | 表示公共事件的自定义结果数据,用于传递string 类型的数据 | + | parameters | 只读 | {[key: string]: any} | 否 | 表示公共事件的附加信息 | + +- 返回值 + + void + +- 示例 + + * 无序事件: + + ```js + var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 + //订阅者信息 + var subscribeInfo = { + events: ["event"] + }; + //订阅公共事件回调 + function SubscribeCallBack(err, data) { + console.info("==========================>SubscribeCallBack=======================>"); + } + //创建订阅者回调 + function CreateSubscriberCallBack(err, data) { + console.info("==========================>CreateSubscriberCallBack=======================>"); + subscriber = data; + //订阅公共事件 + CommonEvent.subscribe(subscriber, SubscribeCallBack); + } + //创建订阅者 + CommonEvent.createSubscriber(subscribeInfo, CreateSubscriberCallBack); + ``` + + * 有序事件 + + ```js + var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 + //订阅者信息 + var subscribeInfo = { + events: ["event"] + }; + + //设置有序公共事件的结果代码回调 + function SetCodeCallBack(err) { + console.info("==========================>SetCodeCallBack=======================>"); + } + //设置有序公共事件的结果数据回调 + function SetDataCallBack(err) { + console.info("==========================>SetDataCallBack=======================>"); + } + //完成本次有序公共事件处理回调 + function FinishCommonEventCallBack(err) { + console.info("==========================>FinishCommonEventCallBack=======================>"); + } + //订阅公共事件回调 + function SubscribeCallBack(err, data) { + console.info("==========================>SubscribeCallBack=======================>"); + //设置有序公共事件的结果代码 + subscriber.setCode(0, SetCodeCallBack); + //设置有序公共事件的结果数据 + subscriber.setData("publish_data_changed", SetDataCallBack); + //完成本次有序公共事件处理 + subscriber.finishCommonEvent(FinishCommonEventCallBack) + } + + //创建订阅者回调 + function CreateSubscriberCallBack(err, data) { + console.info("==========================>CreateSubscriberCallBack=======================>"); + subscriber = data; + //订阅公共事件 + CommonEvent.subscribe(subscriber, SubscribeCallBack); + } + + //创建订阅者 + CommonEvent.createSubscriber(subscribeInfo, CreateSubscriberCallBack); + ``` + + + +#### CommonEvent.unsubscribe(subscriber: CommonEventSubscriber, callback?: AsyncCallback) + +- 接口说明 + + 取消订阅公共事件(callback形式) + +- unsubscribe参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | --------------------- | ---- | ---------------------- | + | subscriber | 只读 | CommonEventSubscriber | 是 | 表示订阅者对象 | + | callback | 只读 | AsyncCallback | 是 | 表示取消订阅的回调方法 | + +- 返回值 + + void + +- 示例 + +```js +var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 +//订阅者信息 +var subscribeInfo = { + events: ["event"] +}; +//订阅公共事件回调 +function SubscribeCallBack(err, data) { + console.info("==========================>SubscribeCallBack=======================>"); +} +//创建订阅者回调 +function CreateSubscriberCallBack(err, data) { + console.info("==========================>CreateSubscriberCallBack=======================>"); + subscriber = data; + //订阅公共事件 + CommonEvent.subscribe(subscriber, SubscribeCallBack); +} +//取消订阅公共事件回调 +function UnsubscribeCallBack(err) { + console.info("==========================>UnsubscribeCallBack=======================>"); +} +//创建订阅者 +CommonEvent.createSubscriber(subscribeInfo, CreateSubscriberCallBack); +//取消订阅公共事件 +CommonEvent.unsubscribe(subscriber, UnsubscribeCallBack); +``` + + + + + diff --git a/zh-cn/application-dev/js-reference/Context.md b/zh-cn/application-dev/js-reference/Context.md new file mode 100644 index 0000000000..00e423f458 --- /dev/null +++ b/zh-cn/application-dev/js-reference/Context.md @@ -0,0 +1,542 @@ +### Context模块(JS端SDK接口) + +#### 支持设备 + +| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 | +| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | ------------ | +| Context.getOrCreateLocalDir(callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getOrCreateLocalDir() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.verifyPermission(permission: string, options: PermissionOptions, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.verifyPermission(permission: string, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.verifyPermission(permission: string, options?: PermissionOptions) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.requestPermissionsFromUser(permissions: Array\, requestCode: number, resultCallback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getApplicationInfo(callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getApplicationInfo() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getBundleName(callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getBundleName() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getProcessInfo(callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getProcessInfo() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getElementName(callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getElementName() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getProcessName(callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getProcessName() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getCallingBundle(callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| Context.getCallingBundle() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | + +#### 权限列表 + +**ohos.permission.RUNNING_LOCK permission** + +#### 导入模块 + +``` +import featureAbility from '@ohos.ability.featureAbility' +import bundle from '@ohos.bundle' +``` + +#### Context.getOrCreateLocalDir(callback: AsyncCallback\) + +- 接口说明 + + 获取应用程序的本地根目录。如果是第一次调用,将创建目录(callback形式) + +- getOrCreateLocalDir参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------- | -------- | ----------------------- | ---- | ---------------- | +| callback | 只读 | AsyncCallback\) | 是 | 被指定的回调方法 | + +- 返回值 + + 根目录 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getOrCreateLocalDir() +``` + + + +#### Context.getOrCreateLocalDir() + +- 接口说明 + + 获取应用程序的本地根目录。如果是第一次调用,将创建目录(Promise形式) + +- 返回值 + + 根目录 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getOrCreateLocalDir().then((void) => { + console.info("==========================>getOrCreateLocalDirCallback=======================>"); +}); +``` + + + +#### Context.verifyPermission(permission: string, options: PermissionOptions, callback: AsyncCallback\) + +- 接口说明 + + 验证系统中运行的特定pid和uid是否允许指定的权限(callback形式) + +- verifyPermission参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | ---------------------- | ---- | ---------------- | +| permission | 只读 | string | 是 | 指定权限的名称 | +| options | 只读 | PermissionOptions | 是 | 进程id | +| callback | 只读 | AsyncCallback\ | 是 | 被指定的回调方法 | + +- PermissionOptions类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---- | -------- | ------ | ---- | ------ | +| pid | 只读 | number | 否 | 进程id | +| uid | 只读 | number | 否 | 用户id | + +- 返回值 + + 如果PID和UID具有权限,则使用{@code 0}进行异步回调;否则使用{@code-1}回调。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +import bundle from '@ohos.bundle' +var context = featureAbility.getContext(); +var datainfo = await bundle.getBundleInfo('com.context.test',1); +context.verifyPermission("com.example.permission",datainfo.uid,) + +``` + + + +#### Context.verifyPermission(permission: string, callback: AsyncCallback\) + +- 接口说明 + + 验证系统中运行的特定pid和uid是否允许指定的权限(callback形式) + +- 参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | ----------------------- | ---- | ---------------- | +| permission | 只读 | string | 是 | 指定权限的名称 | +| callback | 只读 | AsyncCallback\) | 是 | 被指定的回调方法 | + +- 返回值 + + 如果PID和UID具有权限,则使用{@code 0}进行异步回调;否则使用{@code-1}回调。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.verifyPermission("com.example.permission") +``` + + + +#### Context.verifyPermission(permission: string, options?: PermissionOptions) + +- 接口说明 + + 验证系统中运行的特定pid和uid是否允许指定的权限(Promise形式) +- verifyPermission参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | ----------------- | ---- | -------------- | +| permission | 只读 | string | 是 | 指定权限的名称 | +| options | 只读 | PermissionOptions | 否 | 进程id | + +- PermissionOptions类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---- | -------- | ------ | ---- | ------ | +| pid | 只读 | number | 否 | 进程id | +| uid | 只读 | number | 否 | 用户id | + +- 返回值 + + 如果PID和UID具有权限,则使用{@code 0}进行异步回调;否则使用{@code-1}回调。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +var Permission = context.PermissionOptions(1,1); +context.getOrCreateLocalDir('com.context.permission',Permission).then((void) => { + console.info("==========================>verifyPermissionCallback=======================>"); +}); +``` + + + +#### Context.requestPermissionsFromUser(permissions: Array\, requestCode: number, resultCallback: AsyncCallback\) + +- 接口说明 + + 从系统请求某些权限(callback形式) + +- requestPermissionsFromUser参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------- | -------- | ---------------------------------------- | ---- | --------------------------------------------- | +| permissions | 只读 | Array\ | 是 | 指示要请求的权限列表。此参数不能为null | +| requestCode | 只读 | number | 是 | 指示要传递给PermissionRequestResult的请求代码 | +| resultCallback | 只读 | AsyncCallback\) | 是 | 被指定的回调方法 | +- PermissionRequestResult类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | -------------- | ---- | ------------------ | +| requestCode | 只读 | number | 是 | 用户传入的请求代码 | +| permissions | 只读 | Array\ | 是 | 用户传入的权限 | +| authResults | 只读 | Array\ | 是 | 求权限的结果 | + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getOrCreateLocalDir( + ["com.example.permission1", + "com.example.permission2", + "com.example.permission3", + "com.example.permission4", + "com.example.permission5"], + 1, +) +``` + + + +#### Context.getApplicationInfo(callback: AsyncCallback\) + +- 接口说明 + + 获取有关当前应用程序的信息(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback\ | 是 | 表示被指定的回调方法 | + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getApplicationInfo() +``` + + + +#### Context.getApplicationInfo() + +- 接口说明 + + 获取有关当前应用程序的信息(Promise形式) + +- 参数描述 + + Null + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getApplicationInfo().then((void) => { + console.info("==========================>getApplicationInfoCallback=======================>"); +}); +``` + + + +#### Context.getBundleName(callback: AsyncCallback\) + +- 接口说明 + + 获取当前ability的捆绑包名称(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ---------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback\ | 是 | 表示被指定的回调方法 | + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getBundleName() +``` + + + +#### Context.getBundleName() + +- 接口说明 + + 获取当前ability的捆绑包名称(Promise形式) + +- 参数描述 + + Null + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getBundleName().then((void) => { + console.info("==========================>getBundleNameCallback=======================>"); +}); +``` + + + +#### Context.getProcessInfo(callback: AsyncCallback\) + +- 接口说明 + + 获取有关当前进程的信息,包括进程ID和名称(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | --------------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback\ | 是 | 表示被指定的回调方法 | + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getProcessInfo() +``` + + + +#### Context.getProcessInfo() + +- 接口说明 + + 获取有关当前进程的信息,包括进程ID和名称(Promise形式) + +- 参数描述 + + Null + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getProcessInfo().then((void) => { + console.info("==========================>getProcessInfoCallback=======================>"); +}); +``` + + + +#### Context.getElementName(callback: AsyncCallback\) + +- 接口说明 + + 获取当前能力的ohos.bundle.ElementName对象。此方法仅适用于页面功能(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | --------------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback\ | 是 | 表示被指定的回调方法 | + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getElementName() +``` + + + +#### Context.getElementName() + +- 接口说明 + + 获取当前能力的ohos.bundle.ElementName对象。此方法仅适用于页面功能(Promise形式) + +- 参数描述 + + Null + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getElementName().then((void) => { + console.info("==========================>getElementNameCallback=======================>"); +}); +``` + +#### + +#### Context.getProcessName(callback: AsyncCallback\) + +- 接口说明 + + 获取当前进程的名称(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ---------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback\ | 是 | 表示被指定的回调方法 | + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getProcessName() +``` + + + +#### Context.getProcessName() + +- 接口说明 + + 获取当前进程的名称(Promise形式) + +- 参数描述 + + Null + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getProcessName().then((void) => { + console.info("==========================>getProcessNameCallback=======================>"); +}); +``` + + + +#### Context.getCallingBundle(callback: AsyncCallback\) + +- 接口说明 + + 获取调用当前能力的能力的捆绑包名称(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ---------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback\ | 是 | 表示被指定的回调方法 | + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getCallingBundle() +``` + + + +#### Context.getCallingBundle() + +- 接口说明 + + 获取调用当前能力的能力的捆绑包名称(Promise形式) + +- 参数描述 + + Null + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getCallingBundle().then((void) => { + console.info("==========================>getCallingBundleCallback=======================>"); +}); +``` + diff --git a/zh-cn/application-dev/js-reference/DataUriUtils.md b/zh-cn/application-dev/js-reference/DataUriUtils.md new file mode 100644 index 0000000000..225145d1b9 --- /dev/null +++ b/zh-cn/application-dev/js-reference/DataUriUtils.md @@ -0,0 +1,131 @@ +### DataUriUtils模块(JS端SDK接口) + +#### 支持设备 + +| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 | +| ---------------------------------------------- | ---- | ---- | ------ | -------- | -------------- | ------------ | +| DataUriUtils.getId(uri: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataUriUtils.attachId(uri: string, id: number) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataUriUtils.deleteId(uri: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataUriUtils.updateId(uri: string, id: number) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | + +#### 权限列表 + +ohos.permission.RUNNING_LOCK permission + +#### 导入模块 + +```js +import notify from '@ohos.ability.dataUriUtils'; +``` + +#### DataUriUtils.getId(uri: string) + +- 接口说明 + + 获取附加到给定uri的路径组件末尾的ID + +- 参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---- | -------- | ------ | ---- | ------------------------- | +| uri | 只读 | string | 是 | 指示要从中获取ID的uri对象 | + +- 返回值 + + 附加到路径组件末尾的ID + +- 示例 + +```js +import dataUriUtils from '@ohos.ability.datauriutils' +dataUriUtils.getIdSync("com.example.dataUriUtils/1221") +``` + + + +#### DataUriUtils.attachId(uri: string, id: number) + +- 接口说明 + + 将给定ID附加到给定uri的路径组件的末尾 + +- 参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---- | -------- | ------ | ---- | ------------------------- | +| uri | 只读 | string | 是 | 指示要从中获取ID的uri对象 | +| id | 只读 | number | 是 | 指示要附加的ID | + +- 返回值 + + 附加给定ID的uri对象 + +- 示例 + +```js +import dataUriUtils from '@ohos.ability.datauriutils' +var idint = 1122; +dataUriUtils.attachId( + "com.example.dataUriUtils" + idint, +) +``` + + + +#### DataUriUtils.deleteId(uri: string) + +- 接口说明 + + 从给定uri的路径组件的末尾删除ID + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | ------ | ---- | ------------------------- | + | uri | 只读 | string | 是 | 指示要从中删除ID的uri对象 | + +- 返回值 + + ID已删除的uri对象 + +- 示例 + +```js +import dataUriUtils from '@ohos.ability.datauriutils' +dataUriUtils.deleteId("com.example.dataUriUtils/1221") +``` + + + +#### DataUriUtils.updateId(uri: string, id: number) + +- 接口说明 + + 更新指定uri中的ID + +- updateId参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | ------ | ---- | ------------------- | + | uri | 只读 | string | 是 | 指示要更新的uri对象 | + | id | 只读 | number | 是 | 指示新ID | + +- 返回值 + + 更新的uri对象 + +- 示例 + +```js +import dataUriUtils from '@ohos.ability.datauriutils' +var idint = 1122; +dataUriUtils.updateId( + "com.example.dataUriUtils" + idint, +) +``` + diff --git a/zh-cn/application-dev/js-reference/FeatureAbility.md b/zh-cn/application-dev/js-reference/FeatureAbility.md new file mode 100644 index 0000000000..7db9dc5e92 --- /dev/null +++ b/zh-cn/application-dev/js-reference/FeatureAbility.md @@ -0,0 +1,913 @@ +### FeatureAbility模块(JS端SDK接口) + +#### 支持设备 + +| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 | +| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | ------------ | +| FeatureAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.startAbility(parameter: StartAbilityParameter) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.acquireDataAbilityHelper(uri: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.startAbilityForResult(parameter: StartAbilityParameter) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.terminateSelfWithResult(parameter: AbilityResult) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.hasWindowFocus(callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.hasWindowFocus() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.getWant(callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.getWant() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.getContext() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.terminateSelf(callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| FeatureAbility.terminateSelf() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | + +#### 权限列表 + +ohos.permission.RUNNING_LOCK permission + +#### 使用限制 + +FeatureAbility模块的接口只能在Page类型的Ability调用 + +#### 导入模块 + +``` +import featureAbility from '@ohos.ability.featureAbility' +``` + +#### FeatureAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\) + +* 接口说明 + + 启动新的ability(callback形式) + +* startAbility参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | --------------------- | ---- | ------------------- | +| parameter | 只读 | StartAbilityParameter | 是 | 表示被启动的Ability | +| callback | 只读 | AsyncCallback | 是 | 被指定的回调方法 | + +- StartAbilityParameter类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------------------- | -------- | ------ | ---- | ---------------------------------- | +| want | 只读 | want | 是 | 表示需要包含有关目标启动能力的信息 | +| abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 | + +- want类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | ------ | ---- | -------------------------- | +| deviceId | 只读 | string | 否 | 设备id | +| bundleName | 只读 | string | 否 | 捆绑包名称 | +| abilityName | 只读 | string | 否 | ability 名字 | +| uri | 只读 | string | 否 | 请求中URI的描述 | +| type | 只读 | string | 否 | 此文件中类型的说明 | +| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | +| action | 只读 | string | 否 | 需求中对操作的描述 | +| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | +| entities | 只读 | string | 否 | 对象中实体的描述 | + +* flags类型说明 + + | 名称 | 参数 | 描述 | + | ------------------------------------ | ---------- | ------------------------------------------------------------ | + | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | + | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | + | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | + | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | + | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | + | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | + | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | + | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | + | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | + | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | + | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | + | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | + | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | + | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | + | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | + | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | + +* 返回值 + + void + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureAbility' +featureAbility.startAbility( + { + want: + { + action: "", + entities: [""], + type: "", + flags: FLAG_AUTH_READ_URI_PERMISSION, + deviceId: "", + bundleName: "com.example.startability", + abilityName: "com.example.startability.MainAbility", + uri: "" + }, + }, + ); +) +``` + + + +#### FeatureAbility.startAbility(parameter: StartAbilityParameter) + +* 接口说明 + + 启动新的ability(Promise形式) + +* startAbility参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | --------------------- | ---- | ------------------- | +| parameter | 只读 | StartAbilityParameter | 是 | 表示被启动的Ability | + +- StartAbilityParameter类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------------------- | -------- | ------ | ---- | ---------------------------------- | +| want | 只读 | want | 是 | 表示需要包含有关目标启动能力的信息 | +| abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 | + +- want类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | ------ | ---- | -------------------------- | +| deviceId | 只读 | string | 否 | 设备id | +| bundleName | 只读 | string | 否 | 捆绑包名称 | +| abilityName | 只读 | string | 否 | ability 名字 | +| uri | 只读 | string | 否 | 请求中URI的描述 | +| type | 只读 | string | 否 | 此文件中类型的说明 | +| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | +| action | 只读 | string | 否 | 需求中对操作的描述 | +| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | +| entities | 只读 | string | 否 | 对象中实体的描述 | + +* flags类型说明 + + | 名称 | 参数 | 描述 | + | ------------------------------------ | ---------- | ------------------------------------------------------------ | + | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | + | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | + | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | + | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | + | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | + | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | + | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | + | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | + | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | + | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | + | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | + | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | + | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | + | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | + | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | + | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | + +* 返回值 + + void + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureAbility' +featureAbility.startAbility( + { + want: + { + action: "action.system.home", + entities: ["entity.system.home"], + type: "MIMETYPE", + flags: FLAG_AUTH_READ_URI_PERMISSION, + deviceId: "", + bundleName: "com.example.startability", + abilityName: "com.example.startability.MainAbility", + uri: "" + }, + } + ).then((void) => { + console.info("==========================>startAbility=======================>"); +}); +``` + + + +#### FeatureAbility.acquireDataAbilityHelper(uri: string) + +* 接口说明 + + 获取dataAbilityHelper + +* 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | ------ | ---- | ---------------------- | + | uri | 只读 | string | 是 | 指示要打开的文件的路径 | + +* 返回值 + + 返回dataAbilityHelper + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureAbility' +featureAbility.acquireDataAbilityHelper( + "dataability:///com.exmaple.DataAbility" +) +``` + + + +#### FeatureAbility.startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback\) + +* 接口说明 + + 启动一个ability,并在该ability被销毁时返回执行结果(callback形式) + +* startAbility参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | ---------------------- | ---- | ------------------- | +| parameter | 只读 | StartAbilityParameter | 是 | 表示被启动的Ability | +| callback | 只读 | AsyncCallback\ | 是 | 被指定的回调方法 | + +- StartAbilityParameter类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------------------- | -------- | ------ | ---- | ---------------------------------- | +| want | 只读 | want | 是 | 表示需要包含有关目标启动能力的信息 | +| abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 | + +- want类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | ------ | ---- | -------------------------- | +| deviceId | 只读 | string | 否 | 设备id | +| bundleName | 只读 | string | 否 | 捆绑包名称 | +| abilityName | 只读 | string | 否 | ability 名字 | +| uri | 只读 | string | 否 | 请求中URI的描述 | +| type | 只读 | string | 否 | 此文件中类型的说明 | +| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | +| action | 只读 | string | 否 | 需求中对操作的描述 | +| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | +| entities | 只读 | string | 否 | 对象中实体的描述 | + +* flags类型说明 + + | 名称 | 参数 | 描述 | + | ------------------------------------ | ---------- | ------------------------------------------------------------ | + | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | + | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | + | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | + | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | + | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | + | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | + | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | + | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | + | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | + | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | + | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | + | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | + | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | + | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | + | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | + | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | + +* 返回值 + + 返回{@link AbilityResult} + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureability'; +featureAbility.startAbilityForResult( + { + want: + { + action: "action.system.home", + entities: ["entity.system.home"], + type: "MIMETYPE", + flags: FLAG_AUTH_READ_URI_PERMISSION, + deviceId: "", + bundleName: "com.example.featureabilitytest", + abilityName: "com.example.startabilityforresulttest1.MainAbility", + uri:"" + }, + }, +) +``` + + + +#### FeatureAbility.startAbilityForResult(parameter: StartAbilityParameter) + +* 接口说明 + + 启动一个ability,并在该ability被销毁时返回执行结果(Promise形式) + +* startAbility参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | --------------------- | ---- | ------------------- | +| parameter | 只读 | StartAbilityParameter | 是 | 表示被启动的Ability | + +- StartAbilityParameter类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------------------- | -------- | ------ | ---- | ---------------------------------- | +| want | 只读 | want | 是 | 表示需要包含有关目标启动能力的信息 | +| abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 | + +- want类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | ------ | ---- | -------------------------- | +| deviceId | 只读 | string | 否 | 设备id | +| bundleName | 只读 | string | 否 | 捆绑包名称 | +| abilityName | 只读 | string | 否 | ability 名字 | +| uri | 只读 | string | 否 | 请求中URI的描述 | +| type | 只读 | string | 否 | 此文件中类型的说明 | +| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | +| action | 只读 | string | 否 | 需求中对操作的描述 | +| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | +| entities | 只读 | string | 否 | 对象中实体的描述 | + +* flags类型说明 + + | 名称 | 参数 | 描述 | + | ------------------------------------ | ---------- | ------------------------------------------------------------ | + | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | + | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | + | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | + | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | + | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | + | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | + | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | + | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | + | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | + | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | + | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | + | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | + | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | + | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | + | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | + | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | + +* 返回值 + + 返回{@link AbilityResult} + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureability'; +featureAbility.startAbilityForResult( + { + want: + { + action: "action.system.home", + entities: ["entity.system.home"], + type: "MIMETYPE", + flags: FLAG_AUTH_READ_URI_PERMISSION, + deviceId: "", + bundleName: "com.example.featureabilitytest", + abilityName: "com.example.startabilityforresulttest2.MainAbility", + uri:"", + parameters: + { + mykey0: 1111, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "xxxxxxxxxxxxxxxxxxxxxx", + mykey4: [1, 15], + mykey5: [false, true, false], + mykey6: ["aaaaaa", "bbbbb", "ccccccccccc"], + mykey7: true, + }, + }, + requestCode: 2, + }, +).then((void) => { + console.info("==========================>startAbilityForResult=======================>"); +}); +``` + + + +#### FeatureAbility.terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\) + +* 接口说明 + + 设置此page ability将返回给调用者的结果代码和数据并破坏此page ability(callback形式) + + +* startAbility参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | ------------- | ---- | ------------------- | +| parameter | 只读 | AbilityResult | 是 | 表示被启动的Ability | +| callback | 只读 | AsyncCallback | 是 | 被指定的回调方法 | + + +* AbilityResult类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | ------ | ---- | ------------------------------------------------------------ | +| resultCode | 只读 | number | 是 | 指示销毁该能力后返回的结果代码。您可以定义结果代码来识别错误(暂不支持) | +| want | 只读 | Want | 否 | 指示销毁该能力后返回的数据。您可以定义返回的数据。此参数可以为null。 | + +- want类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | ------ | ---- | -------------------------- | +| deviceId | 只读 | string | 否 | 设备id | +| bundleName | 只读 | string | 否 | 捆绑包名称 | +| abilityName | 只读 | string | 否 | ability 名字 | +| uri | 只读 | string | 否 | 请求中URI的描述 | +| type | 只读 | string | 否 | 此文件中类型的说明 | +| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | +| action | 只读 | string | 否 | 需求中对操作的描述 | +| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | +| entities | 只读 | string | 否 | 对象中实体的描述 | + +* flags类型说明 + + | 名称 | 参数 | 描述 | + | ------------------------------------ | ---------- | ------------------------------------------------------------ | + | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | + | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | + | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | + | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | + | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | + | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | + | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | + | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | + | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | + | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | + | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | + | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | + | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | + | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | + | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | + | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | + +* 返回值 + + void + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureAbility' +featureAbility.terminateSelfWithResult( + { + resultCode: 1, + want: + { + action: "action.system.home", + entities: ["entity.system.home"], + type: "MIMETYPE", + flags: FLAG_AUTH_READ_URI_PERMISSION, + deviceId: "", + bundleName: "com.example.featureabilitytest", + abilityName: "com.example.finishwithresulttest1.MainAbility", + uri:"", + parameters: { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [1, 15], + mykey5: [false, true, false], + mykey6: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey7: true, + } + }, + }, +); +``` + + + +#### FeatureAbility.terminateSelfWithResult(parameter: AbilityResult) + +* 接口说明 + + 设置此page ability将返回给调用者的结果代码和数据并破坏此page ability(Promise形式) + +* startAbility参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | ------------- | ---- | ------------------- | +| parameter | 只读 | AbilityResult | 是 | 表示被启动的Ability | + + +* AbilityResult类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | ------ | ---- | ------------------------------------------------------------ | +| resultCode | 只读 | number | 是 | 指示销毁该能力后返回的结果代码。您可以定义结果代码来识别错误(暂不支持) | +| want | 只读 | Want | 否 | 指示销毁该能力后返回的数据。您可以定义返回的数据。此参数可以为null。 | + +- want类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | ------ | ---- | -------------------------- | +| deviceId | 只读 | string | 否 | 设备id | +| bundleName | 只读 | string | 否 | 捆绑包名称 | +| abilityName | 只读 | string | 否 | ability 名字 | +| uri | 只读 | string | 否 | 请求中URI的描述 | +| type | 只读 | string | 否 | 此文件中类型的说明 | +| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | +| action | 只读 | string | 否 | 需求中对操作的描述 | +| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | +| entities | 只读 | string | 否 | 对象中实体的描述 | + +* flags类型说明 + + | 名称 | 参数 | 描述 | + | ------------------------------------ | ---------- | ------------------------------------------------------------ | + | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | + | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | + | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | + | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | + | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | + | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | + | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | + | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | + | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | + | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | + | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | + | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | + | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | + | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | + | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | + | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | + +* 返回值 + + void + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureability'; +featureAbility.terminateSelfWithResult( + { + resultCode: 1, + want: + { + action: "action.system.home", + entities: ["entity.system.home"], + type: "MIMETYPE", + flags: FLAG_AUTH_READ_URI_PERMISSION, + deviceId: "", + bundleName: "com.example.featureabilitytest", + abilityName: "com.example.finishwithresulttest1.MainAbility", + uri:"", + parameters: { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [1, 15], + mykey5: [false, true, false], + mykey6: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey7: true, + } + }, + } +).then((void) => { + console.info("==========================>terminateSelfWithResult=======================>"); +}); +``` + + + +#### FeatureAbility.hasWindowFocus(callback: AsyncCallback\) + +* 接口说明 + + 检查ability的主窗口是否具有窗口焦点(callback形式) + +* 参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------- | -------- | ----------------------- | ---- | ---------------- | +| callback | 只读 | AsyncCallback\ | 是 | 被指定的回调方法 | + +* 返回值 + + 如果此异能当前具有视窗焦点,则返回{@code true};否则返回{@code false} + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureability'; +featureAbility.hasWindowFocus() +``` + + + +#### FeatureAbility.hasWindowFocus() + +* 接口说明 + + 检查ability的主窗口是否具有窗口焦点(Promise形式) + +* 参数描述 + + Null + +* 返回值 + + 如果此异能当前具有视窗焦点,则返回{@code true};否则返回{@code false} + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureability'; +featureAbility.hasWindowFocus().then((void) => { + console.info("==========================>hasWindowFocus=======================>"); +}); +``` + + + +#### FeatureAbility.getWant(callback: AsyncCallback\) + +* 接口说明 + + 获取从ability发送的want(callback形式) + +* 参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------- | -------- | -------------------- | ---- | ---------------- | +| callback | 只读 | AsyncCallback\ | 是 | 被指定的回调方法 | + +* 返回值 + + void + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureability'; +featureAbility.getWant() +``` + + + +#### FeatureAbility.getWant() + +* 接口说明 + + 获取从ability发送的want(Promise形式) + +* 参数描述 + + Null + +* 返回值 + + void + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureability'; +featureAbility.getWant().then((void) => { + console.info("==========================>getWantCallBack=======================>"); +}); +``` + + + +#### FeatureAbility.getContext() + +* 接口说明 + + 获取应用程序上下文 + +* 返回值 + + 返回应用程序上下文 + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureability'; +var context = featureAbility.getContext() +context.getBundleName() +``` + + + +#### FeatureAbility.terminateSelf(callback: AsyncCallback\) + +* 接口说明 + + 设置page ability返回给被调用方的结果代码和数据,并销毁此page ability(callback形式) + +* 参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------- | -------- | -------------------- | ---- | ---------------- | +| callback | 只读 | AsyncCallback\ | 是 | 被指定的回调方法 | + +* 返回值 + + void + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureability'; +featureAbility.terminateSelf() +``` + + + +#### FeatureAbility.terminateSelf() + +* 接口说明 + + 设置page ability返回给被调用方的结果代码和数据,并销毁此page ability(Promise形式) + +* 参数描述 + + Null + +* 返回值 + +* void + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureability'; +featureAbility.terminateSelf().then((void) => { console.info("==========================>terminateSelfCallBack=======================>"); +}); +``` + +#### FeatureAbility.connectAbility(*request*: Want, *options*:ConnectOptions): number + +* 接口说明 + + 将当前ability连接到指定ServiceAbility(callback形式) + +* connectAbility参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------- | -------- | -------------- | ---- | -------------------------- | +| request | 只读 | Want | 是 | 表示被连接的ServiceAbility | +| options | 只读 | ConnectOptions | 是 | 被指定的回调方法 | + +- ConnectOptions类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------------ | -------- | -------- | ---- | ---------------------------------- | +| onConnect | 只读 | function | 是 | 连接成功时的回调函数 | +| onDisconnect | 只读 | function | 是 | 连接失败时的回调函数 | +| onFailed | 只读 | function | 是 | ConnectAbility调用失败时的回调函数 | + +* 返回值 + + 连接的ServiceAbilityID。 + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureAbility' +var mRemote; +var connId; +function onConnectCallback(element, remote){ + mRemote = remote; + console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); +} +function onDisconnectCallback(element){ + console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) +} +function onFailedCallback(code){ + console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code) +} +var connId = featureAbility.connectAbility( + { + bundleName: "com.ix.ServiceAbility", + abilityName: "ServiceAbilityA", + }, + { + onConnect: onConnectCallback, + onDisconnect: onDisconnectCallback, + onFailed: onFailedCallback, + }, +); +``` + +#### FeatureAbility.disconnectAbility(connection: number, callback:AsyncCallback): void + +* 接口说明 + + 断开与指定ServiceAbility的连接(callback形式) + +* disconnectAbility参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | ------------- | ---- | ------------------------------ | +| connection | 只读 | number | 是 | 指定断开连接的ServiceAbilityID | +| callback | 只读 | AsyncCallback | 是 | 被指定的回调方法 | + +* 返回值 + + 无 + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureAbility' +var mRemote; +var connId; +function onConnectCallback(element, remote){ + mRemote = remote; + console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); +} +function onDisconnectCallback(element){ + console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) +} +function onFailedCallback(code){ + console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code) +} +var connId = featureAbility.connectAbility( + { + bundleName: "com.ix.ServiceAbility", + abilityName: "ServiceAbilityA", + }, + { + onConnect: onConnectCallback, + onDisconnect: onDisconnectCallback, + onFailed: onFailedCallback, + }, +); +var result = featureAbility.disconnectAbility(connId, + (error,data) => { + console.log('featureAbilityTest DisConnectJsSameBundleName result errCode : ' + error.code + " data: " + data) + }, +); +``` + +#### FeatureAbility.disconnectAbility(connection: number): Promise; + +* 接口说明 + + 断开与指定ServiceAbility的连接(promise形式) + +* disconnectAbility参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | ------ | ---- | ------------------------------ | +| connection | 只读 | number | 是 | 指定断开连接的ServiceAbilityID | + +* 返回值 + + 无 + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureAbility' +var mRemote; +var connId; +function onConnectCallback(element, remote){ + mRemote = remote; + console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); +} +function onDisconnectCallback(element){ + console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) +} +function onFailedCallback(code){ + console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code) +} +var connId = featureAbility.connectAbility( + { + bundleName: "com.ix.ServiceAbility", + abilityName: "ServiceAbilityA", + }, + { + onConnect: onConnectCallback, + onDisconnect: onDisconnectCallback, + onFailed: onFailedCallback, + }, +); +var result = await featureAbility.disconnectAbility(connId); +``` + diff --git a/zh-cn/application-dev/js-reference/Notification.md b/zh-cn/application-dev/js-reference/Notification.md new file mode 100644 index 0000000000..992b4ef99f --- /dev/null +++ b/zh-cn/application-dev/js-reference/Notification.md @@ -0,0 +1,1676 @@ + + +Notification模块(JS端SDK接口) + +#### 支持设备 + +| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | +| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | +| Notification.publish(request: NotificationRequest, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.publish(request: NotificationRequest) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancel(id: number, label: string, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancel(id:number, label?:string) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancel(id: number, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancelAll(callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancelAll() | 支持 | 支持 | 支持 | 支持 | +| Notification.addSlot(slot: NotificationSlot, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.addSlot(slot: NotificationSlot) | 支持 | 支持 | 支持 | 支持 | +| Notification.addSlot(type: SlotType, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.addSlot(type: SlotType) | 支持 | 支持 | 支持 | 支持 | +| Notification.addSlots(slots: Array, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.addSlots(slots: Array) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlot(slotType: SlotType, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlot(slotType: SlotType) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlots(callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlots() | 支持 | 支持 | 支持 | 支持 | +| Notification.removeSlot(slotType: SlotType, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.removeSlot(slotType: SlotType) | 支持 | 支持 | 支持 | 支持 | +| Notification.removeAllSlots(callback: AsyncCallback): void | 支持 | 支持 | 支持 | 支持 | +| Notification.removeAllSlots(): Promise | 支持 | 支持 | 支持 | 支持 | +| Notification.subscribe(subscriber: NotificationSubscriber, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.subscribe(subscriber: NotificationSubscriber, info: NotificationSubscribeInfo, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.subscribe(subscriber: NotificationSubscriber, info?: NotificationSubscribeInfo) | 支持 | 支持 | 支持 | 支持 | +| Notification.unsubscribe(subscriber: NotificationSubscriber, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.unsubscribe(subscriber: NotificationSubscriber) | 支持 | 支持 | 支持 | 支持 | +| Notification.enableNotification(bundle: BundleOption, enable: boolean, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.enableNotification(bundle: BundleOption, enable: boolean) | 支持 | 支持 | 支持 | 支持 | +| Notification.isNotificationEnabled(bundle: BundleOption, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.isNotificationEnabled(bundle: BundleOption) | 支持 | 支持 | 支持 | 支持 | +| Notification.isNotificationEnabled(callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.isNotificationEnabled() | 支持 | 支持 | 支持 | 支持 | +| Notification.displayBadge(bundle: BundleOption, enable: boolean, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.displayBadge(bundle: BundleOption, enable: boolean) | 支持 | 支持 | 支持 | 支持 | +| Notification.isBadgeDisplayed(bundle: BundleOption, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.isBadgeDisplayed(bundle: BundleOption) | 支持 | 支持 | 支持 | 支持 | +| Notification.setSlotByBundle(bundle: BundleOption, slot: NotificationSlot, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.setSlotByBundle(bundle: BundleOption, slot: NotificationSlot) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlotsByBundle(bundle: BundleOption, callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlotsByBundle(bundle: BundleOption) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlotNumByBundle(bundle: BundleOption, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlotNumByBundle(bundle: BundleOption) | 支持 | 支持 | 支持 | 支持 | +| Notification.remove(bundle: BundleOption, notificationKey: NotificationKey, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.remove(bundle: BundleOption, notificationKey: NotificationKey) | 支持 | 支持 | 支持 | 支持 | +| Notification.remove(hashCode: string, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.remove(hashCode: string) | 支持 | 支持 | 支持 | 支持 | +| Notification.removeAll(bundle: BundleOption, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.removeAll(callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.removeAll(bundle?: BundleOption) | 支持 | 支持 | 支持 | 支持 | +| Notification.getAllActiveNotifications(callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | +| Notification.getAllActiveNotifications() | 支持 | 支持 | 支持 | 支持 | +| Notification.getActiveNotificationCount(callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.getActiveNotificationCount() | 支持 | 支持 | 支持 | 支持 | +| Notification.getActiveNotifications(callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | +| Notification.getActiveNotifications() | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getWantAgent(info: WantAgentInfo, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getWantAgent(info: WantAgentInfo): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getBundleName(agent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getBundleName(agent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getUid(agent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getUid(agent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getWant(agent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getWant(agent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.cancel(agent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.cancel(agent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.equal(agent: WantAgent, otherAgent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | + +#### 权限列表 + +无 + +#### 通知接口 + +#### 导入模块 + +```js +import notify from '@ohos.notification'; +``` + +#### Notification.publish(request: NotificationRequest, callback: AsyncCallback) + +- 接口说明 + + 发布通知(callback形式) + +- publish参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------- | -------- | ------------------- | ---- | ------------------------------------------- | +| request | 只读 | NotificationRequest | 是 | 设置要发布通知内容的NotificationRequest对象 | +| callback | 只读 | AsyncCallback | 是 | 被指定的回调方法 | + +- NotificationRequest类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------------- | -------- | ------------------------------- | ---- | -------------------------- | +| content | 读、写 | NotificationContent | 是 | 通知内容 | +| id | 读、写 | number | 否 | 通知ID | +| slotType | 读、写 | SlotType | 否 | 通道类型 | +| isOngoing | 读、写 | boolean | 否 | 是否进行时通知 | +| isUnremovable | 读、写 | boolean | 否 | 是否可移除 | +| deliveryTime | 读、写 | number | 否 | 通知发送时间 | +| tapDismissed | 读、写 | boolean | 否 | 通知是否自动清除 | +| autoDeletedTime | 读、写 | number | 否 | 自动清除的时间 | +| wantAgent | 读、写 | WantAgent | 否 | 点击跳转的WantAgent | +| extraInfo | 读、写 | {[key: string]: any} | 否 | 扩展参数 | +| color | 读、写 | number | 否 | 通知背景颜色 | +| colorEnabled | 读、写 | boolean | 否 | 通知背景颜色是否使能 | +| isAlertOnce | 读、写 | boolean | 否 | 设置是否仅有一次此通知警报 | +| isStopwatch | 读、写 | boolean | 否 | 是否显示已用时间 | +| isCountDown | 读、写 | boolean | 否 | 是否显示倒计时时间 | +| isFloatingIcon | 读、写 | boolean | 否 | 是否显示状态栏图标 | +| isFloatingIcon | 读、写 | boolean | 否 | 是否显示状态栏图标 | +| label | 读、写 | string | 否 | 通知标签 | +| badgeIconStyle | 读、写 | number | 否 | 通知角标类型 | +| showDeliveryTime | 读、写 | boolean | 否 | 是否显示分发时间 | +| actionButtons | 读、写 | Array | 否 | 通知按钮,最多两个按钮 | +| smallIcon | 读、写 | PixelMap | 否 | 通知小图标 | +| largeIcon | 读、写 | PixelMap | 否 | 通知大图标 | +| creatorBundleName | 只读 | string | 否 | 创建通知的包名 | +| creatorUid | 只读 | number | 否 | 创建通知的UID | +| creatorPid | 只读 | number | 否 | 创建通知的PID | +| hashCode | 只读 | string | 否 | 通知唯一标识 | +| classification | 读、写 | string | 否 | 通知分类 | + +NotificationContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | ---------------------------- | ---- | -------------- | +| contentType | 读、写 | ContentType | 是 | 通知内容类型 | +| normal | 读、写 | NotificationBasicContent | 否 | 通知基本内容 | +| longText | 读、写 | NotificationLongTextContent | 否 | 通知长文本内容 | +| multiLine | 读、写 | NotificationMultiLineContent | 否 | 通知多行内容 | + +- ContentType类型说明 + +| 名称 | 读写属性 | 类型 | 描述 | +| --------------------------------- | -------- | ----------- | ---------------- | +| NOTIFICATION_CONTENT_BASIC_TEXT | 只读 | ContentType | 普通类型通知 | +| NOTIFICATION_CONTENT_LONG_TEXT | 只读 | ContentType | 长文本类型通知 | +| NOTIFICATION_CONTENT_PICTURE | 只读 | ContentType | 图片类型通知 | +| NOTIFICATION_CONTENT_CONVERSATION | 只读 | ContentType | 社交类型通知 | +| NOTIFICATION_CONTENT_MULTILINE | 只读 | ContentType | 多行文本类型通知 | + +- NotificationBasicContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------- | -------- | ------ | ---- | -------------------------------- | +| title | 读、写 | string | 是 | 通知标题 | +| text | 读、写 | string | 是 | 通知内容 | +| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | + +- NotificationLongTextContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------- | -------- | ------ | ---- | -------------------------------- | +| title | 读、写 | string | 是 | 通知标题 | +| text | 读、写 | string | 是 | 通知内容 | +| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | +| longText | 读、写 | string | 是 | 通知的长文本 | +| briefText | 读、写 | string | 是 | 通知概要内容,是对通知内容的总结 | +| expandedTitle | 读、写 | string | 是 | 通知展开时的标题 | + +- NotificationMultiLineContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------- | -------- | ------------- | ---- | -------------------------------- | +| title | 读、写 | string | 是 | 通知标题 | +| text | 读、写 | string | 是 | 通知内容 | +| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | +| briefText | 读、写 | string | 是 | 通知概要内容,是对通知内容的总结 | +| longTitle | 读、写 | string | 是 | 通知展开时的标题 | +| lines | 读、写 | Array | 是 | 通知的多行文本 | + +- NotificationPictureContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------- | -------- | -------------- | ---- | -------------------------------- | +| title | 读、写 | string | 是 | 通知标题 | +| text | 读、写 | string | 是 | 通知内容 | +| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | +| briefText | 读、写 | string | 是 | 通知概要内容,是对通知内容的总结 | +| expandedTitle | 读、写 | string | 是 | 通知展开时的标题 | +| picture | 读、写 | image.PixelMap | 是 | 通知的图片内容 | + +- NotificationActionButton类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | -------------- | ---- | ------------------------- | +| title | 读、写 | string | 是 | 按钮标题 | +| wantAgent | 读、写 | wantAgent | 是 | 点击按钮时触发的WantAgent | +| extras | 读、写 | Array | 否 | 按钮扩展信息 | +| icon | 读、写 | image.PixelMap | 否 | 按钮图标 | + +- + + 返回值为void + +- 示例 + +```js +//publish回调 +function publishCallback(err) { + console.info("==========================>publishCallback=======================>"); +} +//通知Request对象 +var notificationRequest = { + id: 1, + content: { + contentType: notify.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, + normal: { + title: "test_title", + text: "test_text", + additionalText: "test_additionalText" + } + } +} +Notification.publish(notificationRequest, publishCallback) +``` + + + +#### Notification.publish(request: NotificationRequest) + +- 接口说明 + + 发布通知(Promise形式) + +- + + 返回值为Promise<**void**> + +- 示例 + +```js +//通知Request对象 +var notificationRequest = { + notificationId: 1, + content: { + contentType: notify.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, + normal: { + title: "test_title", + text: "test_text", + additionalText: "test_additionalText" + } + } +} +Notification.publish(notificationRequest).then((void) => { + console.info("==========================>publishCallback=======================>"); +}); + +``` + + + +#### Notification.cancel(id: number, label: string, callback: AsyncCallback) + +- 接口说明 + + 取消与指定id和label相匹配的已发布通知(callback形式) + +- cancel参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | id | 只读 | number | 是 | 通知ID | + | lable | 只读 | string | 是 | 通知标签 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + +- + + 返回值为void + +- 示例 + +```js +//cancel回调 +function cancelCallback(err) { + console.info("==========================>cancelCallback=======================>"); +} +Notification.cancel(0, "label", cancelCallback) +``` + + + +#### Notification.cancel(id:number, label?:string) + +- 接口说明 + + 取消与指定id相匹配的已发布通知,label可以指定也可以不指定(Promise形式) + +- cancel参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----- | -------- | ------ | ---- | -------- | + | id | 只读 | number | 是 | 通知ID | + | lable | 只读 | string | 是 | 通知标签 | + +- + + 返回值为Promise<**void**> + +- 示例 + +```js +Notification.cancel(0).then((void) => { + console.info("==========================>cancelCallback=======================>"); +}); +``` + + + +#### Notification.cancel(id: number, callback: AsyncCallback) + +- 接口说明 + + 取消与指定id相匹配的已发布通知(callback形式) + +- cancel参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | id | 只读 | number | 是 | 通知ID | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + +- + + 返回值为void + +- 示例 + +```js +//cancel回调 +function cancelCallback(err) { + console.info("==========================>cancelCallback=======================>"); +} +Notification.cancel(0, cancelCallback) +``` + + + +#### Notification.cancelAll(callback: AsyncCallback) + +- 接口说明 + + 取消所有已发布的通知(callback形式) + +- cancelAll参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + +- + + 返回值为void + +- 示例 + +```js +//cancel回调 +function cancelAllback(err) { + console.info("==========================>cancelAllback=======================>"); +} +Notification.cancelAll(cancelCallback) +``` + + + +#### Notification.cancelAll() + +- 接口说明 + + 取消所有已发布的通知(callback形式) + +- 参数描述 + + 无参数 + +- + + 返回值为void + +- 示例 + +```js +Notification.cancelAll().then((void) => { + console.info("==========================>cancelAllback=======================>"); +}); +``` + +#### Notification.addSlot(type: SlotType, callback: AsyncCallback) + +- 接口说明 + + 创建通知通道(callback形式) + +- addSlot参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | ---------------------- | + | type | 只读 | SlotType | 是 | 要创建的通知通道的类型 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + +- SlotType类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------------- | -------- | -------- | ---- | -------- | +| SOCIAL_COMMUNICATION | 只读 | SlotType | 否 | 社交类型 | +| SERVICE_INFORMATION | 只读 | SlotType | 否 | 服务类型 | +| CONTENT_INFORMATION | 只读 | SlotType | 否 | 内容类型 | +| OTHER_TYPES | 只读 | SlotType | 否 | 其他类型 | + +* + + 返回值为void + +* 示例 + +```js +//addslot回调 +function addSlotCallBack(err) { + console.info("==========================>addSlotCallBack=======================>"); +} +Notification.addSlot(SOCIAL_COMMUNICATION, addSlotCallBack) +``` + + + +#### Notification.addSlot(type: SlotType) + +- 接口说明 + + 创建通知通道(Promise形式) + +- addSlot参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | -------- | ---- | ---------------------- | + | type | 只读 | SlotType | 是 | 要创建的通知通道的类型 | + +- + + 返回值为Promise<**void**> + +- 示例 + +```js +Notification.addSlot(SOCIAL_COMMUNICATION).then((void) => { + console.info("==========================>addSlotCallback=======================>"); +}); +``` + +#### Notification.getSlot(slotType: SlotType, callback: AsyncCallback) + +- 接口说明 + + 获取一个通知通道(callback形式) + +- getSlot参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------------------- | ---- | ----------------------------------------------------------- | + | slotType | 只读 | slotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + +- + + 返回值为void + +- 示例 + +```js +//getSlot回调 +function getSlotCallback(err,data) { + console.info("==========================>getSlotCallback=======================>"); +} +var slotType = SOCIAL_COMMUNICATION; +Notification.getSlot(slotType, getSlotCallback) +``` + + + +#### Notification.getSlot(slotType) + +- 接口说明 + + 获取一个通知通道(Promise形式) + +* getSlot参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | -------- | ---- | ----------------------------------------------------------- | + | slotType | 只读 | slotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | + +* + + 返回值为Promise + +* 示例 + +```js +var slotType = SOCIAL_COMMUNICATION; +Notification.getSlot(slotType).then((data) => { + console.info("==========================>getSlotCallback=======================>"); +``` + + + +#### Notification.getSlots(callback: AsyncCallback>) + +- 接口说明 + + 获取此应用程序的所有通知通道(callback形式) + +- getSlots参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + +- + + 返回值为void + +- 示例 + +```js +//getSlots回调 +function getSlotsCallback(err,data) { + console.info("==========================>getSlotsCallback=======================>"); +} +Notification.getSlots(getSlotsCallback) +``` + + + +#### Notification.getSlots() + +- 接口说明 + + 获取此应用程序的所有通知通道(Promise形式) + +- getSlots参数描述 + + 无参数 + +- + + 返回值为Promise> + +- 示例 + +```js +Notification.getSlots().then((data) => { + console.info("==========================>getSlotsCallback=======================>"); +``` + + + +#### Notification.removeSlot(slotType: SlotType, callback: AsyncCallback) + +- 接口说明 + + 根据通知通道类型删除创建的通知通道(callback形式) + +- removeSlot参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | ----------------------------------------------------------- | + | SlotType | 只读 | SlotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + +- + + 返回值为void + +- 示例 + +```js +//removeSlot回调 +function removeSlotCallback(err) { + console.info("==========================>removeSlotCallback=======================>"); +} +var slotType = SOCIAL_COMMUNICATION; +Notification.removeSlot(slotType,removeSlotCallback) +``` + + + +#### Notification.removeSlot(slotType: SlotType) + +- 接口说明 + + 根据通知通道类型删除创建的通知通道(Promise形式) + +- removeSlot参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | -------- | ---- | ----------------------------------------------------------- | + | SlotType | 只读 | SlotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | + +- + + 返回值为Promise<**void**> + +- 示例 + +```js +var slotType = SOCIAL_COMMUNICATION; +Notification.removeSlot(slotType).then((void) => { + console.info("==========================>removeSlotCallback=======================>"); +``` + + + +#### Notification.removeAllSlots(callback: AsyncCallback) + +- 接口说明 + + 删除所有通知通道(callback形式) + +- removeAllSlots参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + +- + + 返回值为void + +- 示例 + +```js +function removeAllCallBack(err) { + console.info("================>removeAllCallBack=======================>"); +} +Notification.removeAllSlots(removeAllCallBack) +``` + + + +#### Notification.removeAllSlots() + +- 接口说明 + + 删除所有通知通道(Promise形式) + +- removeAllSlots参数描述 + + 参数无 + +- + + 返回值为Promise<**void**> + +- 示例 + +```js + +Notification.removeAllSlots().then((void) => { + console.info("==========================>removeAllCallBack=======================>"); +}); +``` + +#### Notification.getAllActiveNotifications(callback: AsyncCallback>) + +- 接口说明 + + 获取活动通知(Callback形式) + +- getAllActiveNotifications参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ----------------------------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback> | 是 | 获取活动通知回调函数 | + +- + + 返回值为void + +- 示例 + +```js +function getAllActiveNotificationsCallback(err, data) { + console.info("==========================>getAllActiveNotificationsCallback=======================>"); +} + +Notification.getAllActiveNotifications(getAllActiveNotificationsCallback); +``` + + + +#### Notification.getAllActiveNotifications() + +- 接口说明 + + 获取活动通知(Promise形式) + +- getAllActiveNotifications参数描述 + + 无 + +- + + 返回值为Promise> + +- 示例 + +```js +Notification.getAllActiveNotifications().then((data) => { + console.info("==========================>getAllActiveNotificationsCallback=======================>"); +}); +``` + + + +#### Notification.getActiveNotificationCount(callback: AsyncCallback<**number**>) + +- 接口说明 + + 获取当前应用的活动通知数(Callback形式) + +- getActiveNotificationCount参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------------- | ---- | ---------------------- | + | callback | 只读 | AsyncCallback<**number**> | 是 | 获取活动通知数回调函数 | + +- + + 返回值为void + +- 示例 + +```js +function getActiveNotificationCountCallback(err, data) { + console.info("==========================>getActiveNotificationCountCallback=======================>"); +} + +Notification.getActiveNotificationCount(getActiveNotificationCountCallback); +``` + + + +#### Notification.getActiveNotificationCount() + +- 接口说明 + + 获取当前应用的活动通知数(Promise形式) + +- getActiveNotificationCount参数描述 + + 无 + +- + + 返回值为Promise<**number**> + +- 示例 + +```js +Notification.getActiveNotificationCount().then((data) => { + console.info("==========================>getActiveNotificationCountCallback=======================>"); +}); +``` + + + +#### Notification.getActiveNotifications(callback: AsyncCallback>) + +- 接口说明 + + 获取当前应用的活动通知(Callback形式) + +- getActiveNotifications参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ----------------------------------------- | ---- | ------------------------------ | + | callback | 只读 | AsyncCallback> | 是 | 获取当前应用的活动通知回调函数 | + +- + + 返回值为void + +- 示例 + +```js +function getActiveNotificationsCallback(err, data) { + console.info("==========================>getActiveNotificationsCallback=======================>"); +} + +Notification.getActiveNotifications(getActiveNotificationsCallback); +``` + + + +#### Notification.getActiveNotifications() + +- 接口说明 + + 获取当前应用的活动通知(Promise形式) + +- getActiveNotifications参数描述 + + 无 + +- + + 返回值为Promise> + +- 示例 + +```js +Notification.getActiveNotifications().then((data) => { + console.info("==========================>getActiveNotificationsCallback=======================>"); +}); +``` + + + +#### WantAgent接口 + +#### 导入模块 + +```js +import WantAgent from '@ohos.wantAgent'; +``` + +#### WantAgent.getWantAgent(info: WantAgentInfo, callback: AsyncCallback) + +- 接口说明 + + 创建WantAgent(callback形式) + +- getWantAgent参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------- | -------- | ------------------------ | ---- | ----------------------- | +| info | 只读 | WantAgentInfo | 是 | WantAgent信息 | +| callback | 只读 | AsyncCallback | 是 | 创建WantAgent的回调方法 | + +- WantAgentInfo类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------- | -------- | ------------------------------- | ---- | ---------------------- | +| wants | 读、写 | Array | 是 | 将被执行的动作列表 | +| operationType | 读、写 | wantAgent.OperationType | 是 | 动作类型 | +| requestCode | 读、写 | number | 是 | 使用者定义的一个私有值 | +| wantAgentFlags | 读、写 | Array | 否 | 动作执行属性 | +| extraInfo | 读、写 | {[key: string]: any} | 否 | 额外数据 | + +- + WantAgentFlags类型说明 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------------------- | -------- | ---- | ---- | ------------------------------------------------------------ | +| ONE_TIME_FLAG | 只读 | enum | 否 | WantAgent仅能使用一次 | +| NO_BUILD_FLAG | 只读 | enum | 否 | 如果描述WantAgent对象不存在,则不创建它,直接返回null | +| CANCEL_PRESENT_FLAG | 只读 | enum | 否 | 在生成一个新的WantAgent对象前取消已存在的一个WantAgent对象 | +| UPDATE_PRESENT_FLAG | 只读 | enum | 否 | 使用新的WantAgent的额外数据替换已存在的WantAgent中的额外数据 | +| CONSTANT_FLAG | 只读 | enum | 否 | WantAgent是不可变的 | +| REPLACE_ELEMENT | 只读 | enum | 否 | 当前Want中的element属性可被WantAgent.trigger()中Want的element属性取代 | +| REPLACE_ACTION | 只读 | enum | 否 | 当前Want中的action属性可被WantAgent.trigger()中Want的action属性取代 | +| REPLACE_URI | 只读 | enum | 否 | 当前Want中的uri属性可被WantAgent.trigger()中Want的uri属性取代 | +| REPLACE_ENTITIES | 只读 | enum | 否 | 当前Want中的entities属性可被WantAgent.trigger()中Want的entities属性取代 | +| REPLACE_BUNDLE | 只读 | enum | 否 | 当前Want中的bundleName属性可被WantAgent.trigger()中Want的bundleName属性取代 | + +- OperationType类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------------- | -------- | ---- | ---- | ----------------------- | +| UNKNOWN_TYPE | 只读 | enum | 否 | 不识别的类型 | +| START_ABILITY | 只读 | enum | 否 | 开启一个有页面的Ability | +| START_ABILITIES | 只读 | enum | 否 | 开启多个有页面的Ability | +| START_SERVICE | 只读 | enum | 否 | 开启一个无页面的ability | +| SEND_COMMON_EVENT | 只读 | enum | 否 | 发送一个公共事件 | + +- + + 返回值为void + +- 示例 + +```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; + +//getWantAgent回调 +function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); +} +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} + +wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) +``` + + + +#### WantAgent.getWantAgent(info: WantAgentInfo): Promise + +- 接口说明 + + 创建WantAgent(Promise形式) + +- getWantAgent参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---- | -------- | ------------- | ---- | ------------- | +| info | 只读 | WantAgentInfo | 是 | WantAgent信息 | + +- + + 返回值为Promise + +- 示例 + +```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; + +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} + +wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); +}); +``` + + + +#### WantAgent.getBundleName(agent: WantAgent, callback: AsyncCallback) + +- 接口说明 + + 获取WantAgent实例的包名(callback形式) + +- getBundleName参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------- | -------- | --------------------- | ---- | --------------------------------- | +| agent | 只读 | WantAgent | 是 | WantAgent对象 | +| callback | 只读 | AsyncCallback | 是 | 获取WantAgent实例的包名的回调方法 | + +- 返回值为void + +- 示例 + +```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; + +//wantAgent对象 +var WantAgent; + +//getWantAgent回调 +function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent = data; + } else { + console.info('----getWantAgent failed!----'); + } +} +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} + +wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + +//getBundleName回调 +function getBundleNameCallback(err, data) { + console.info("==========================>getBundleNameCallback=======================>"); +} +wantAgent.getBundleName(WantAgent, getBundleNameCallback) +``` + + + +#### WantAgent.getBundleName(agent: WantAgent): Promise + +- 接口说明 + + 获取WantAgent实例的包名(Promise形式) + +- getBundleName参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----- | -------- | --------- | ---- | ------------- | +| agent | 只读 | WantAgent | 是 | WantAgent对象 | + +- + + 返回值为Promise + +- 示例 + +```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; + +//wantAgent对象 +var WantAgent; + +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} + +wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + WantAgent = data; +}); + +wantAgent.getBundleName(WantAgent).then((data) => { + console.info("==========================>getBundleNameCallback=======================>"); +}); +``` + + + +#### WantAgent.getUid(agent: WantAgent, callback: AsyncCallback) + +- 接口说明 + + 获取WantAgent实例的用户ID(callback形式) + +- getUid参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------- | -------- | --------------------- | ---- | ----------------------------------- | +| agent | 只读 | WantAgent | 是 | WantAgent对象 | +| callback | 只读 | AsyncCallback | 是 | 获取WantAgent实例的用户ID的回调方法 | + +- 返回值为void + +- 示例 + +```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; + +//wantAgent对象 +var WantAgent; + +//getWantAgent回调 +function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent = data; + } else { + console.info('----getWantAgent failed!----'); + } +} +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} + +wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + +//getUid回调 +function getUidCallback(err, data) { + console.info("==========================>getUidCallback=======================>"); +} +wantAgent.getUid(WantAgent, getUidCallback) +``` + + + +#### WantAgent.getUid(agent: WantAgent): Promise + +- 接口说明 + + 获取WantAgent实例的用户ID(Promise形式) + +- getUid参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----- | -------- | --------- | ---- | ------------- | +| agent | 只读 | WantAgent | 是 | WantAgent对象 | + +- + + 返回值为Promise + +- 示例 + +```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; + +//wantAgent对象 +var WantAgent; + +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} + +wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + WantAgent = data; +}); + +wantAgent.getUid(WantAgent).then((data) => { + console.info("==========================>getUidCallback=======================>"); +}); +``` + + + +#### WantAgent.cancel(agent: WantAgent, callback: AsyncCallback) + +- 接口说明 + + 取消WantAgent实例(callback形式) + +- cancel参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------- | -------- | ------------------- | ---- | --------------------------- | +| agent | 只读 | WantAgent | 是 | WantAgent对象 | +| callback | 只读 | AsyncCallback | 是 | 取消WantAgent实例的回调方法 | + +- 返回值为void + +- 示例 + +```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; + +//wantAgent对象 +var WantAgent; + +//getWantAgent回调 +function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent = data; + } else { + console.info('----getWantAgent failed!----'); + } +} +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} + +wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + +//cancel回调 +function cancelCallback(err, data) { + console.info("==========================>cancelCallback=======================>"); +} +wantAgent.cancel(WantAgent, cancelCallback) +``` + + + +#### WantAgent.cancel(agent: WantAgent): Promise + +- 接口说明 + + 取消WantAgent实例(Promise形式) + +- cancel参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----- | -------- | --------- | ---- | ------------- | +| agent | 只读 | WantAgent | 是 | WantAgent对象 | + +- + + 返回值为Promise + +- 示例 + +```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; + +//wantAgent对象 +var WantAgent; + +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} + +wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + WantAgent = data; +}); + +wantAgent.cancel(WantAgent).then((data) => { + console.info("==========================>cancelCallback=======================>"); +}); +``` + + + +#### WantAgent.trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback) + +- 接口说明 + + 主动激发WantAgent实例(callback形式) + +- trigger参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | --------------------------- | ---- | ------------------------------- | +| agent | 只读 | WantAgent | 是 | WantAgent对象 | +| triggerInfo | 只读 | TriggerInfo | 是 | TriggerInfo对象 | +| callback | 只读 | AsyncCallback | 是 | 主动激发WantAgent实例的回调方法 | + +- TriggerInfo类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | -------------------- | ---- | ----------- | +| code | 读、写 | number | 是 | result code | +| want | 读、写 | Want | 否 | Want | +| permission | 读、写 | string | 否 | 权限定义 | +| extraInfo | 读、写 | {[key: string]: any} | 否 | 额外数据 | + +- 返回值为void +- 示例 + +```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; + +//wantAgent对象 +var WantAgent; + +//getWantAgent回调 +function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent = data; + } else { + console.info('----getWantAgent failed!----'); + } +} +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} + +wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + +//cancel回调 +function triggerCallback(err, data) { + console.info("==========================>triggerCallback=======================>"); +} +wantAgent.trigger(WantAgent, triggerCallback) +``` + + + +#### WantAgent.equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback) + +- 接口说明 + + 判断两个WantAgent实例是否相等(callback形式) + +- equal参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | ---------------------- | ---- | --------------------------------------- | +| agent | 只读 | WantAgent | 是 | WantAgent对象 | +| otherAgent | 只读 | WantAgent | 是 | WantAgent对象 | +| callback | 只读 | AsyncCallback | 是 | 判断两个WantAgent实例是否相等的回调方法 | + +- 返回值为void + +- 示例 + +```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; + +//wantAgent对象 +var WantAgent1; +var WantAgent2; + +//getWantAgent回调 +function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent1 = data; + WantAgent2 = data; + } else { + console.info('----getWantAgent failed!----'); + } +} +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} + +wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + +//cancel回调 +function equalCallback(err, data) { + console.info("==========================>equalCallback=======================>"); +} +wantAgent.equal(WantAgent1, WantAgent1, equalCallback) +``` + + + +#### WantAgent.equal(agent: WantAgent, otherAgent: WantAgent): Promise + +- 接口说明 + + 判断两个WantAgent实例是否相等(Promise形式) + +- equal参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | --------- | ---- | ------------- | +| agent | 只读 | WantAgent | 是 | WantAgent对象 | +| otherAgent | 只读 | WantAgent | 是 | WantAgent对象 | + +- + + 返回值为Promise + +- 示例 + +```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; + +//wantAgent对象 +var WantAgent1; +var WantAgent2; + +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} + +wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + WantAgent = data; +}); + +wantAgent.equal(WantAgent1, WantAgent2).then((data) => { + console.info("==========================>equalCallback=======================>"); +}); +``` + + + +#### + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zh-cn/application-dev/js-reference/ParticleAbility.md b/zh-cn/application-dev/js-reference/ParticleAbility.md new file mode 100644 index 0000000000..a547da02f9 --- /dev/null +++ b/zh-cn/application-dev/js-reference/ParticleAbility.md @@ -0,0 +1,411 @@ +### ParticleAbility模块(JS端SDK接口) + +#### 支持设备 + +| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 | +| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | ------------ | +| ParticleAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\ | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| ParticleAbility.startAbility(parameter: StartAbilityParameter) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| ParticleAbility.terminateSelf(callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| ParticleAbility.terminateSelf() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| ParticleAbility.acquireDataAbilityHelper(uri: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | + +#### 权限列表 + +ohos.permission.RUNNING_LOCK permission + +#### 使用限制 + +ParticleAbility模块的接口只能在Ability为Data和Service类型的时候进行调用 + +#### 导入模块 + +``` +import featureAbility from '@ohos.ability.featureAbility' +``` + +#### ParticleAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\ + +- 接口说明 + + 服务ability使用此方法启动特定ability(callback形式) + +- startAbility参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | --------------------- | ---- | ----------------- | +| parameter | 只读 | StartAbilityParameter | 是 | 指示启动的ability | +| callback | 只读 | AsyncCallback\ | 是 | 被指定的回调方法 | + +- StartAbilityParameter类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------------------- | -------- | ------ | ---- | ---------------------------------- | +| want | 只读 | want | 是 | 表示需要包含有关目标启动能力的信息 | +| abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 | + +- want类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | ------ | ---- | -------------------------- | +| deviceId | 只读 | string | 否 | 设备id | +| bundleName | 只读 | string | 否 | 捆绑包名称 | +| abilityName | 只读 | string | 否 | ability 名字 | +| uri | 只读 | string | 否 | 请求中URI的描述 | +| type | 只读 | string | 否 | 此文件中类型的说明 | +| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | +| action | 只读 | string | 否 | 需求中对操作的描述 | +| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | +| entities | 只读 | string | 否 | 对象中实体的描述 | + +- flags类型说明 + + | 名称 | 参数 | 描述 | + | ------------------------------------ | ---------- | ------------------------------------------------------------ | + | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | + | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | + | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | + | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | + | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | + | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | + | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | + | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | + | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | + | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | + | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | + | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | + | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | + | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | + | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | + | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | + +- 返回值 + + void + +- 示例 + +```js +import particleAbility from '@ohos.ability.particleAbility' +particleAbility.startAbility( + { + want: + { + action: "action.system.home", + entities: ["entity.system.home"], + type: "MIMETYPE", + flags: FLAG_AUTH_READ_URI_PERMISSION; + deviceId: "", + bundleName: "com.example.Data", + abilityName: "com.jstest.startabilitytest5.MainAbility", + uri:"" + }, + }, +) +``` + + + +#### ParticleAbility.startAbility(parameter: StartAbilityParameter) + +- 接口说明 +服务ability使用此方法启动特定ability((Promise形式) +- startAbility参数描述 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | --------------------- | ---- | ----------------- | +| parameter | 只读 | StartAbilityParameter | 是 | 指示启动的ability | +- StartAbilityParameter类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------------------- | -------- | ------ | ---- | ---------------------------------- | +| want | 只读 | want | 是 | 表示需要包含有关目标启动能力的信息 | +| abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 | + +- want类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | ------ | ---- | -------------------------- | +| deviceId | 只读 | string | 否 | 设备id | +| bundleName | 只读 | string | 否 | 捆绑包名称 | +| abilityName | 只读 | string | 否 | ability 名字 | +| uri | 只读 | string | 否 | 请求中URI的描述 | +| type | 只读 | string | 否 | 此文件中类型的说明 | +| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | +| action | 只读 | string | 否 | 需求中对操作的描述 | +| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | +| entities | 只读 | string | 否 | 对象中实体的描述 | + +- flags类型说明 + + | 名称 | 参数 | 描述 | + | ------------------------------------ | ---------- | ------------------------------------------------------------ | + | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | + | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | + | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | + | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | + | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | + | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | + | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | + | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | + | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | + | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | + | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | + | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | + | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | + | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | + | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | + | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +import particleAbility from '@ohos.ability.particleAbility' +var windowMode = featureAbility.AbilityStartSetting.WINDOW_MODE_KEY; +particleAbility.startAbility( + want: + { + bundleName: "com.jstest.featureabilitytest", + abilityName: "com.jstest.startabilitytest1.MainAbility", + }, + abilityStartSetting: + { + windowMode: featureAbility.AbilityWindowConfiguration.WINDOW_MODE_FLOATING, + }, + } + + ).then((void) => { + console.info("==========================>startAbilityCallback=======================>"); +}); +``` + + + +#### ParticleAbility.terminateSelf(callback: AsyncCallback\) + +- 接口说明 + + 摧毁服务ability(callback形式) + +- terminateSelf参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | -------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback\ | 是 | 表示被指定的回调方法 | + +- 返回值 + + void + +- 示例 + +```js +import particleAbility from '@ohos.ability.particleAbility' +ParticleAbility.terminateSelf() +``` + + + +#### ParticleAbility.terminateSelf() + +- 接口说明 + + 摧毁服务ability(Promise形式) + +- 返回值 + + void + +- 示例 + +```js +import particleAbility from '@ohos.ability.particleAbility' +particleAbility.terminateSelf().then((void) => { + console.info("==========================>terminateSelfCallback=======================>"); +}); +``` + + + +#### ParticleAbility.acquireDataAbilityHelper(uri: string) + +- 接口说明 + + 获取dataAbilityHelper + +- acquireDataAbilityHelper参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | :--- | -------- | ------ | ---- | ---------------------- | + | uri | 只读 | string | 是 | 指示要打开的文件的路径 | + +- 返回值 + + 返回dataAbilityHelper + +- 示例 + +```js +import particleAbility from '@ohos.ability.particleAbility' +var uri = ""; +ParticleAbility.acquireDataAbilityHelper(uri) +``` + +#### ParticleAbility.connectAbility(*request*: Want, *options*:ConnectOptions): number + +* 接口说明 + + 将当前ability连接到指定ServiceAbility(callback形式) + +* connectAbility参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------- | -------- | -------------- | ---- | -------------------------- | +| request | 只读 | Want | 是 | 表示被连接的ServiceAbility | +| options | 只读 | ConnectOptions | 是 | 被指定的回调方法 | + +- ConnectOptions类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------------ | -------- | -------- | ---- | ---------------------------------- | +| onConnect | 只读 | function | 是 | 连接成功时的回调函数 | +| onDisconnect | 只读 | function | 是 | 连接失败时的回调函数 | +| onFailed | 只读 | function | 是 | ConnectAbility调用失败时的回调函数 | + +* 返回值 + + 连接的ServiceAbilityID。 + +* 示例 + +```javascript +import particleAbility from '@ohos.ability.particleAbility' +var mRemote; +var connId; +function onConnectCallback(element, remote){ + mRemote = remote; + console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); +} +function onDisconnectCallback(element){ + console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) +} +function onFailedCallback(code){ + console.log('particleAbilityTest ConnectAbility onFailed errCode : ' + code) +} +var connId = particleAbility.connectAbility( + { + bundleName: "com.ix.ServiceAbility", + abilityName: "ServiceAbilityA", + }, + { + onConnect: onConnectCallback, + onDisconnect: onDisconnectCallback, + onFailed: onFailedCallback, + }, +); +``` + +#### ParticleAbility.disconnectAbility(connection: number, callback:AsyncCallback): void + +* 接口说明 + + 断开与指定ServiceAbility的连接(callback形式) + +* disconnectAbility参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | ------------- | ---- | ------------------------------ | +| connection | 只读 | number | 是 | 指定断开连接的ServiceAbilityID | +| callback | 只读 | AsyncCallback | 是 | 被指定的回调方法 | + +* 返回值 + + 无 + +* 示例 + +```javascript +import particleAbility from '@ohos.ability.particleAbility' +var mRemote; +var connId; +function onConnectCallback(element, remote){ + mRemote = remote; + console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); +} +function onDisconnectCallback(element){ + console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) +} +function onFailedCallback(code){ + console.log('particleAbilityTest ConnectAbility onFailed errCode : ' + code) +} +var connId = particleAbility.connectAbility( + { + bundleName: "com.ix.ServiceAbility", + abilityName: "ServiceAbilityA", + }, + { + onConnect: onConnectCallback, + onDisconnect: onDisconnectCallback, + onFailed: onFailedCallback, + }, +); +var result = particleAbility.disconnectAbility(connId, + (error,data) => { + console.log('particleAbilityTest DisConnectJsSameBundleName result errCode : ' + error.code + " data: " + data) + }, +); +``` + +#### ParticleAbility.disconnectAbility(connection: number): Promise; + +* 接口说明 + + 断开与指定ServiceAbility的连接(promise形式) + +* disconnectAbility参数描述 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | ------ | ---- | ------------------------------ | +| connection | 只读 | number | 是 | 指定断开连接的ServiceAbilityID | + +* 返回值 + + 无 + +* 示例 + +```javascript +import particleAbility from '@ohos.ability.particleAbility' +var mRemote; +var connId; +function onConnectCallback(element, remote){ + mRemote = remote; + console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); +} +function onDisconnectCallback(element){ + console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) +} +function onFailedCallback(code){ + console.log('particleAbilityTest ConnectAbility onFailed errCode : ' + code) +} +var connId = particleAbility.connectAbility( + { + bundleName: "com.ix.ServiceAbility", + abilityName: "ServiceAbilityA", + }, + { + onConnect: onConnectCallback, + onDisconnect: onDisconnectCallback, + onFailed: onFailedCallback, + }, +); +var result = await particleAbility.disconnectAbility(connId); +``` + diff --git a/zh-cn/application-dev/js-reference/dataAbilityHelper.md b/zh-cn/application-dev/js-reference/dataAbilityHelper.md new file mode 100644 index 0000000000..1caf702a80 --- /dev/null +++ b/zh-cn/application-dev/js-reference/dataAbilityHelper.md @@ -0,0 +1,837 @@ +### DataAbilityHelper模块(JS端SDK接口) + +#### 支持设备 + +| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 | +| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | ------------ | +| DataAbilityHelper.openFile(uri: string, mode: string, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.openFile(uri: string, mode: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.on(type: 'dataChange', uri: string, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.off(type: 'dataChange', uri: string, callback?: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.getFileTypes(uri: string, mimeTypeFilter: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.getType(uri: string, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.getType(uri: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.normalizeUri(uri: string, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.normalizeUri(uri: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.denormalizeUri(uri: string, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.denormalizeUri(uri: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.notifyChange(uri: string, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.notifyChange(uri: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.insert(uri: string, valuesBucket: rdb.ValuesBucket, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.insert(uri: string, valuesBucket: rdb.ValuesBucket) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.batchInsert(uri: string, valuesBuckets: Array, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.batchInsert(uri: string, valuesBuckets: Array) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.delete(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.delete(uri: string, predicates: dataAbility.DataAbilityPredicates) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.update(uri: string, valuesBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.update(uri: string, valuesBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.query(uri: string, columns: Array\, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback\) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | +| DataAbilityHelper.query(uri: string, columns: Array\, predicates: dataAbility.DataAbilityPredicates) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | + +#### 权限列表 + +ohos.permission.RUNNING_LOCK permission + +#### 导入模块 + +``` +import featureAbility from '@ohos.ability.featureAbility' +import ohos_data_ability from '@ohos.data.dataability' +import ohos_data_rdb from '@ohos.data.rdb' +``` + +#### DataAbilityHelper.openFile(uri: string, mode: string, callback: AsyncCallback\) + +- 接口说明 + + 在指定的远程路径中打开文件(callback形式) + + +* 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | -------------------- | ---- | ------------------------ | + | uri | 只读 | string | 是 | 指示要打开的文件的路径。 | + | mode | 只读 | string | 是 | 指示文件打开模式‘rwt’。 | + | callback | 只读 | AsyncCallback\ | 是 | 被指定的回调方法 | + +* 返回值 + + 返回文件描述符。 + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +var mode = "rwt"; +DAHelper.openFile( + "dataability:///com.example.DataAbility", + mode, +) +``` + +#### DataAbilityHelper.openFile(uri: string, mode: string) + +- 接口说明 + + 在指定的远程路径中打开文件(Promise形式) + +* 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | ------ | ---- | ------------------------ | + | uri | 只读 | string | 是 | 指示要打开的文件的路径。 | + | mode | 只读 | string | 是 | 指示文件打开模式‘rwt’。 | + +* 返回值 + + 返回文件描述符。 + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +var mode = "rwt"; +DAHelper.openFile( + "dataability:///com.example.DataAbility", + mode).then((void) => { + console.info("==========================>openFileCallback=======================>"); +}); +``` + +#### DataAbilityHelper.on(type: 'dataChange', uri: string, callback: AsyncCallback\) + +- 接口说明 + + 注册观察者以观察给定uri指定的数据(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | -------------------- | ---- | ------------------------ | + | type | 只读 | string | 是 | 数据更改。 | + | uri | 只读 | string | 是 | 指示要操作的数据的路径。 | + | callback | 只读 | AsyncCallback\ | 是 | 指示数据更改时的回调。 | + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var helper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +helper.on( + "dataChange", + "dataability:///com.example.DataAbility", +) +``` + +#### DataAbilityHelper.off(type: 'dataChange', uri: string, callback?: AsyncCallback\) + +- 接口说明 + + 注册观察者以观察给定uri指定的数据(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | -------------------- | ---- | ------------------------ | + | type | 只读 | string | 是 | 数据更改。 | + | uri | 只读 | string | 是 | 指示要操作的数据的路径。 | + | callback | 只读 | AsyncCallback\ | 否 | 指示已注册的回调。 | + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var helper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +helper.off( + "dataChange", + "dataability:///com.example.DataAbility", +) +``` + +#### DataAbilityHelper.getType(uri: string, callback: AsyncCallback\) + +- 接口说明 + + 获取给定URI指定的日期的MIME类型(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ---------------------- | ---- | ------------------------ | + | uri | 只读 | string | 是 | 指示要操作的数据的路径。 | + | callback | 只读 | AsyncCallback\ | 是 | 回调方法 | + +- 返回值 + + 返回与uri指定的数据匹配的MIME类型。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +DAHelper.getType( + "dataability:///com.example.DataAbility" +) +``` + +#### DataAbilityHelper.getType(uri: string) + +- 接口说明 + + 获取给定URI指定的日期的MIME类型(Promise形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | ------ | ---- | ------------------------ | + | uri | 只读 | string | 是 | 指示要操作的数据的路径。 | + +- 返回值 + + 返回与uri指定的数据匹配的MIME类型。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +DAHelper.getType( + "dataability:///com.example.DataAbility" + ).then((void) => { + console.info("==========================>getTypeCallback=======================>"); +}); +``` + +#### DataAbilityHelper.getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback>) + +- 接口说明 + + 获取支持的文件的MIME类型(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------------- | -------- | ---------------------- | ---- | ---------------------------- | + | uri | 只读 | string | 是 | 指示要获取的文件的路径。 | + | mimeTypeFilter | 只读 | string | 是 | 指示要获取的文件的MIME类型。 | + | callback | 只读 | AsyncCallback\ | 是 | 回调方法 | + +- 返回值 + + 返回匹配的MIME类型数组。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +DAHelper.getFileTypes( + "dataability:///com.example.DataAbility", + "image/*" +) +``` + +#### DataAbilityHelper.getFileTypes(uri: string, mimeTypeFilter: string) + +- 接口说明 + + 获取支持的文件的MIME类型(Promise形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------------- | -------- | ------ | ---- | ---------------------------- | + | uri | 只读 | string | 是 | 指示要获取的文件的路径。 | + | mimeTypeFilter | 只读 | string | 是 | 指示要获取的文件的MIME类型。 | + +- 返回值 + + 返回匹配的MIME类型数组。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +DAHelper.getFileTypes( + "dataability:///com.example.DataAbility", + "image/*" + ).then((void) => { + console.info("==========================>getFileTypesCallback=======================>"); +}); +``` + +#### DataAbilityHelper.normalizeUri(uri: string, callback: AsyncCallback\) + +- 接口说明 + + 将引用数据功能的给定uri转换为规范化uri(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ---------------------- | ---- | ----------------------- | + | uri | 只读 | string | 是 | 指示要规范化的uri对象。 | + | callback | 只读 | AsyncCallback\ | 是 | 回调方法 | + +- 返回值 + + 如果数据功能支持uri规范化或null,则返回规范化uri对象。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +DAHelper.normalizeUri( + "dataability:///com.example.DataAbility", +) +``` + +#### DataAbilityHelper.normalizeUri(uri: string) + +- 接口说明 + + 将引用数据功能的给定uri转换为规范化uri(Promise形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | ------ | ---- | ----------------------- | + | uri | 只读 | string | 是 | 指示要规范化的uri对象。 | + +- 返回值 + + 如果数据功能支持uri规范化或null,则返回规范化uri对象。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +DAHelper.normalizeUri( + "dataability:///com.example.DataAbility", + ).then((void) => { + console.info("==========================>normalizeUriCallback=======================>"); +}); +``` + +#### DataAbilityHelper.denormalizeUri(uri: string, callback: AsyncCallback\) + +- 接口说明 + + 将由normalizeUri(uri)生成的给定规范化uri转换为非规范化uri(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ---------------------- | ---- | ----------------------- | + | uri | 只读 | string | 是 | 指示要规范化的uri对象。 | + | callback | 只读 | AsyncCallback\ | 是 | 回调方法 | + +- 返回值 + + 如果反规范化成功,则返回反规范化uri对象。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +DAHelper.denormalizeUri( + "dataability:///com.example.DataAbility", +) +``` + +#### DataAbilityHelper.denormalizeUri(uri: string) + +- 接口说明 + + 将由normalizeUri(uri)生成的给定规范化uri转换为非规范化uri(Promise形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | ------ | ---- | ----------------------- | + | uri | 只读 | string | 是 | 指示要规范化的uri对象。 | + +- 返回值 + + 如果反规范化成功,则返回反规范化uri对象。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +DAHelper.denormalizeUri( + "dataability:///com.example.DataAbility", + ).then((void) => { + console.info("==========================>denormalizeUriCallback=======================>"); +}); +``` + +#### DataAbilityHelper.notifyChange(uri: string, callback: AsyncCallback\) + +- 接口说明 + + 通知已注册的观察者uri指定的数据资源的更改(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | -------------------- | ---- | ------------------------ | + | uri | 只读 | string | 是 | 指示要操作的数据的路径。 | + | callback | 只读 | AsyncCallback\ | 是 | 回调方法 | + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var helper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +helper.notifyChange( + "dataability:///com.example.DataAbility", +) +``` + +#### DataAbilityHelper.notifyChange(uri: string) + +- 接口说明 + + 通知已注册的观察者uri指定的数据资源的更改(Promise形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | ------ | ---- | ------------------------ | + | uri | 只读 | string | 是 | 指示要操作的数据的路径。 | + +- 返回值 + + void + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +DAHelper.notifyChange( + "dataability:///com.example.DataAbility", + ).then((void) => { + console.info("==========================>notifyChangeCallback=======================>"); +}); +``` + +#### DataAbilityHelper.insert(uri: string, valuesBucket: rdb.ValuesBucket, callback: AsyncCallback\) + +- 接口说明 + + 将单个数据记录插入数据库(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------ | -------- | ---------------------- | ---- | ------------------------------------------------------ | + | uri | 只读 | string | 是 | 指示要插入的数据的路径。 | + | valuesBucket | 只读 | rdb.ValuesBucket | 是 | 指示要插入的数据记录。如果此参数为空,将插入一个空行。 | + | callback | 只读 | AsyncCallback\ | 是 | 回调方法 | + +- 返回值 + + 返回插入数据记录的索引。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +const valueBucket = { + "name": "rose", + "age": 22, + "salary": 200.5, + "blobType": u8, +} +DAHelper.insert( + "dataability:///com.example.DataAbility", + valueBucket +) +``` + +#### DataAbilityHelper.insert(uri: string, valuesBucket: rdb.ValuesBucket) + +- 接口说明 + + 将单个数据记录插入数据库(Promise形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------ | -------- | ---------------- | ---- | ------------------------------------------------------ | + | uri | 只读 | string | 是 | 指示要插入的数据的路径。 | + | valuesBucket | 只读 | rdb.ValuesBucket | 是 | 指示要插入的数据记录。如果此参数为空,将插入一个空行。 | + +- 返回值 + + 返回插入数据记录的索引。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +const valueBucket = { + "name": "rose1", + "age": 221, + "salary": 20.5, + "blobType": u8, +} +DAHelper.insert( + "dataability:///com.example.DataAbility", + valueBucket + ).then((void) => { + console.info("==========================>insertCallback=======================>"); +}); +``` + +#### DataAbilityHelper.batchInsert(uri: string, valuesBuckets: Array, callback: AsyncCallback\) + +- 接口说明 + + 将多个数据记录插入数据库(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------ | -------- | ----------------------- | ---- | ------------------------ | + | uri | 只读 | string | 是 | 指示要插入的数据的路径。 | + | valuesBucket | 只读 | Array | 是 | 指示要插入的数据记录。 | + | callback | 只读 | AsyncCallback\ | 是 | 回调方法 | + +- 返回值 + + 返回插入的数据记录数。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +var cars = new Array({"name": "roe11", "age": 21, "salary": 20.5, "blobType": u8,}, + {"name": "roe12", "age": 21, "salary": 20.5, "blobType": u8,}, + {"name": "roe13", "age": 21, "salary": 20.5, "blobType": u8,}) +DAHelper.batchInsert( + "dataability:///com.example.DataAbility", + cars +) +``` + +#### DataAbilityHelper.batchInsert(uri: string, valuesBuckets: Array) + +- 接口说明 + + 将多个数据记录插入数据库(Promise形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------ | -------- | ----------------------- | ---- | ------------------------ | + | uri | 只读 | string | 是 | 指示要插入的数据的路径。 | + | valuesBucket | 只读 | Array | 是 | 指示要插入的数据记录。 | + +- 返回值 + + 返回插入的数据记录数。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +var cars = new Array({"name": "roe11", "age": 21, "salary": 20.5, "blobType": u8,}, + {"name": "roe12", "age": 21, "salary": 20.5, "blobType": u8,}, + {"name": "roe13", "age": 21, "salary": 20.5, "blobType": u8,}) +DAHelper.batchInsert( + "dataability:///com.example.DataAbility", + cars + ).then((void) => { + console.info("==========================>batchInsertCallback=======================>"); +}); +``` + +#### DataAbilityHelper.delete(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback\) + +- 接口说明 + + 从数据库中删除一个或多个数据记录(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------ | -------- | --------------------------------- | ---- | ------------------------------------------------ | + | uri | 只读 | string | 是 | 指示要删除的数据的路径。 | + | valuesBucket | 只读 | dataAbility.DataAbilityPredicates | 是 | 指示筛选条件。当此参数为null时,应定义处理逻辑。 | + | callback | 只读 | AsyncCallback\ | 是 | 回调方法 | + +- 返回值 + + 返回已删除的数据记录数。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +import ohos_data_ability from '@ohos.data.dataability' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +let da = new ohos_data_ability.DataAbilityPredicates() +DAHelper.delete( + "dataability:///com.example.DataAbility", + da +) +``` + +#### DataAbilityHelper.delete(uri: string, predicates: dataAbility.DataAbilityPredicates) + +- 接口说明 + + 从数据库中删除一个或多个数据记录(Promise形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------ | -------- | --------------------------------- | ---- | ------------------------------------------------ | + | uri | 只读 | string | 是 | 指示要删除的数据的路径。 | + | valuesBucket | 只读 | dataAbility.DataAbilityPredicates | 是 | 指示筛选条件。当此参数为null时,应定义处理逻辑。 | + +- 返回值 + + 返回已删除的数据记录数。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +let da = new ohos_data_ability.DataAbilityPredicates() +DAHelper.delete( + "dataability:///com.example.DataAbility", + da + ).then((void) => { + console.info("==========================>deleteCallback=======================>"); +}); +``` + +#### DataAbilityHelper.update(uri: string, valuesBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback\) + +- 接口说明 + + 更新数据库中的数据记录(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------ | -------- | --------------------------------- | ---- | ------------------------------------------------ | + | uri | 只读 | string | 是 | 指示要更新的数据的路径。 | + | valuesBucket | 只读 | rdb.ValuesBucket | 是 | 指示要更新的数据。 | + | predicates | 只读 | dataAbility.DataAbilityPredicates | 是 | 指示筛选条件。当此参数为null时,应定义处理逻辑。 | + | callback | 只读 | AsyncCallback\ | 是 | 回调方法 | + +- 返回值 + + 返回更新的数据记录数。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +import ohos_data_ability from '@ohos.data.dataability' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +const va = { + "name": "roe1", + "age": 21, + "salary": 20.5, + "blobType": u8, +} +let da = new ohos_data_ability.DataAbilityPredicates() +DAHelper.update( + "dataability:///com.example.DataAbility", + va, + da +) +``` + +#### DataAbilityHelper.update(uri: string, valuesBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates) + +- 接口说明 + + 更新数据库中的数据记录(Promise形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------ | -------- | --------------------------------- | ---- | ------------------------------------------------ | + | uri | 只读 | string | 是 | 指示要更新的数据的路径。 | + | valuesBucket | 只读 | rdb.ValuesBucket | 是 | 指示要更新的数据。 | + | predicates | 只读 | dataAbility.DataAbilityPredicates | 是 | 指示筛选条件。当此参数为null时,应定义处理逻辑。 | + +- 返回值 + + 返回更新的数据记录数。 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +import ohos_data_ability from '@ohos.data.dataability' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +const va = { + "name": "roe1", + "age": 21, + "salary": 20.5, + "blobType": u8, +} +let da = new ohos_data_ability.DataAbilityPredicates() +DAHelper.update( + "dataability:///com.example.DataAbility", + va, + da + ).then((void) => { + console.info("==========================>updateCallback=======================>"); +}); +``` + +#### DataAbilityHelper.query(uri: string, columns: Array\, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback\) + +- 接口说明 + + 查询数据库中的数据(callback形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | --------------------------------- | ---- | ------------------------------------------------ | + | uri | 只读 | string | 是 | 指示要查询的数据的路径。 | + | columns | 只读 | rdb.ValuesBucket | 是 | 指示要查询的列。如果此参数为空,则查询所有列。 | + | predicates | 只读 | dataAbility.DataAbilityPredicates | 是 | 指示筛选条件。当此参数为null时,应定义处理逻辑。 | + | callback | 只读 | AsyncCallback\ | 是 | 回调方法 | + +- 返回值 + + 返回查询结果 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +import ohos_data_ability from '@ohos.data.dataability' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +var cars=new Array({"value1"}, {"value2"}, {"value3"}, {"value4"}); +let da = new ohos_data_ability.DataAbilityPredicates() +DAHelper.query( + "dataability:///com.example.DataAbility", + cars, + da +) +``` + + + +#### DataAbilityHelper.query(uri: string, columns: Array\, predicates: dataAbility.DataAbilityPredicates) + +- 接口说明 + + 查询数据库中的数据(Promise形式) + +- 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | --------------------------------- | ---- | ------------------------------------------------ | + | uri | 读写 | string | 是 | 指示要查询的数据的路径。 | + | columns | 读写 | rdb.ValuesBucket | 是 | 指示要查询的列。如果此参数为空,则查询所有列。 | + | predicates | 读写 | dataAbility.DataAbilityPredicates | 是 | 指示筛选条件。当此参数为null时,应定义处理逻辑。 | + +- 返回值 + + 返回查询结果 + +- 示例 + +```js +import featureAbility from '@ohos.ability.featureAbility' +import ohos_data_ability from '@ohos.data.dataability' +var DAHelper = await featureAbility.getDataAbilityHelper( + "dataability:///com.example.DataAbility" +); +var cars=new Array({"value1"}, {"value2"}, {"value3"}, {"value4"}); +let da = new ohos_data_ability.DataAbilityPredicates() +DAHelper.query( + "dataability:///com.example.DataAbility", + cars, + da + ).then((void) => { + console.info("==========================>queryCallback=======================>"); +}); +``` + diff --git "a/zh-cn/application-dev/quick-start/CommonEvent\345\274\200\345\217\221\346\214\207\345\215\227.md" "b/zh-cn/application-dev/quick-start/CommonEvent\345\274\200\345\217\221\346\214\207\345\215\227.md" new file mode 100644 index 0000000000..3f95719dff --- /dev/null +++ "b/zh-cn/application-dev/quick-start/CommonEvent\345\274\200\345\217\221\346\214\207\345\215\227.md" @@ -0,0 +1,522 @@ +CommonEvent开发指南 + +#### 基本概念 + +OpenHarmony通过CES(Common Event Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力。 + +公共事件可分为系统公共事件和自定义公共事件。 + +- 系统公共事件:系统将收集到的事件信息,根据系统策略发送给订阅该事件的用户程序。 例如:系统关键服务发布的系统事件(例如:hap安装,更新,卸载等)。 + +- 自定义公共事件:应用自定义一些公共事件用来实现跨应用的事件通信能力。 + +每个应用都可以按需订阅公共事件,订阅成功且公共事件发布,系统会把其发送给应用。这些公共事件可能来自系统、其他应用和应用自身。 + + + +#### 接口列表 + +| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | +| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | +| CommonEvent.publish(event: string, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.publish(event: string, options: CommonEventPublishData, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.createSubscriber(subscribeInfo: CommonEventSubscribeInfo, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.createSubscriber(subscribeInfo: CommonEventSubscribeInfo) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.subscribe(subscriber: CommonEventSubscriber, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.unsubscribe(subscriber: CommonEventSubscriber, callback?: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | + + + +#### 导入模块 + +```js +import CommonEvent from '@ohos.commonevent'; +``` + + + +#### 创建公共事件订阅者 + +根据开发者设定的公共事件订阅相关信息(比如准备订阅的公共事件集等)创建公共事件订阅者对象。 + +- CommonEventSubscribeInfo类型说明 + + CommonEventSubscribeInfo封装公共事件订阅相关信息,比如准备订阅的公共事件集、发布者必须具备的权限、发布者的设备ID、发布者的用户ID、优先级等。 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------------- | -------- | ------------- | ---- | ------------------------------------------------------------ | + | events | 只读 | Array | 是 | 表示要订阅的公共事件集。 | + | publisherPermission | 只读 | string | 否 | 表示发布者的权限。 | + | publisherDeviceId | 只读 | int | 否 | 表示发布者的设备ID,该值必须是同一ohos网络上的现有设备ID。 | + | userId | 只读 | int | 否 | 表示发布者的用户ID。默认值当前用户的ID。如果指定了此参数,则该值必须是系统中现有的用户ID。 | + | priority | 只读 | int | 否 | 表示订阅者的优先级,范围为-100~1000,用于有序公共事件。 | + +- CommonEventSubscriber 类说明 + + CommonEventSubscriber封装公共事件订阅者及相关参数,主要接口如下。 + + | 名称 | 参数 | 返回值 | 描述 | + | --------------------- | --------------------------------------------------------- | --------------------------------- | ------------------------------------------------------------ | + | getCode | callback: AsyncCallback | void | 获取公共事件的结果代码(callback形式) | + | getCode | void | Promise | 获取公共事件的结果代码(Promise形式) | + | setCode | code: number, callback: AsyncCallback | void | 设置有序公共事件的结果代码(callback形式) | + | setCode | code: number | Promise | 设置有序公共事件的结果代码(Promise形式) | + | getData | callback: AsyncCallback | void | 获取公共事件的结果数据(callback形式) | + | getData | void | Promise | 获取公共事件的结果数据(Promise形式) | + | setData | data: string, callback: AsyncCallback | void | 设置有序公共事件的结果数据(callback形式) | + | setData | data: string | Promise | 设置有序公共事件的结果数据(Promise形式) | + | setCodeAndData | code: number, data: string, callback: AsyncCallback | void | 设置有序公共事件的结果代码和结果数据(callback形式) | + | setCodeAndData | code: number, data: string | Promise | 设置有序公共事件的结果代码和结果数据(Promise形式) | + | isOrderedCommonEvent | callback: AsyncCallback | void | 查询当前公共事件的是否为有序公共事件,返回true代表是有序公共事件,false代表不是有序公共事件(callback形式) | + | isOrderedCommonEvent | void | Promise | 查询当前公共事件的是否为有序公共事件,返回true代表是有序公共事件,false代表不是有序公共事件(Promise形式) | + | abortCommonEvent | callback: AsyncCallback | void | 取消当前的公共事件,仅对有序公共事件有效,取消后,公共事件不再向下一个订阅者传递(callback形式) | + | abortCommonEvent | void | Promise | 取消当前的公共事件,仅对有序公共事件有效,取消后,公共事件不再向下一个订阅者传递(Promise形式) | + | clearAbortCommonEvent | callback: AsyncCallback | void | 清除当前有序公共事件abort状态(callback形式) | + | clearAbortCommonEvent | void | Promise | 清除当前有序公共事件abort状态(Promise形式) | + | getAbortCommonEvent | callback: AsyncCallback | void | 获取当前有序公共事件是否取消的状态(callback形式) | + | getAbortCommonEvent | void | Promise | 获取当前有序公共事件是否取消的状态Promise形式) | + | getSubscribeInfo | callback: AsyncCallback | void | 获取订阅者的订阅信息(callback形式) | + | getSubscribeInfo | void | Promise | 获取订阅者的订阅信息(Promise形式) | + + + +- 创建订阅者接口(callback形式) + + CommonEvent.createSubscriber(subscribeInfo: CommonEventSubscribeInfo, callback: AsyncCallback) + + - 接口参数描述 + + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------- | -------- | ------------------------------------ | ---- | ------------------------ | + | subscribeInfo | 只读 | CommonEventSubscribeInfo | 是 | 表示公共事件订阅信息 | + | callback | 只读 | AsyncCallback | 是 | 表示创建订阅者的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 + //订阅者信息 + var subscribeInfo = { + events: ["event"] + }; + //创建订阅者回调 + function CreateSubscriberCallBack(err, data) { + console.info("==========================>CreateSubscriberCallBack=======================>"); + subscriber = data; + } + //创建订阅者 + CommonEvent.createSubscriber(subscribeInfo, CreateSubscriberCallBack); + ``` + +- 创建订阅者接口(Promise形式) + + CommonEvent.createSubscriber(subscribeInfo: CommonEventSubscribeInfo) + + - 接口参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------- | -------- | ------------------------ | ---- | ------------ | + | subscribeInfo | 只读 | CommonEventSubscribeInfo | 是 | 表示订阅信息 | + + - 返回值 + + Promise + + - 示例代码 + + ```js + var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 + //订阅者信息 + var subscribeInfo = { + events: ["event"] + }; + //创建订阅者 + CommonEvent.createSubscriber(subscribeInfo).then((data) => { + console.info("==========================>createSubscriberPromise=======================>"); + subscriber = data; + }); + ``` + + + +#### 订阅公共事件 + +订阅公共事件,并指定公共事件订阅者对象和接收公共事件的回调函数。 + +- CommonEventData类型说明 + + CommonEventData封装公共事件相关信息。用于在接收时处理数据。 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | -------------------- | ---- | ------------------------------------------------------- | + | event | 只读 | string | 是 | 表示当前接收的公共事件名称 | + | bundleName | 只读 | string | 否 | 表示包名称 | + | code | 只读 | int | 否 | 表示公共事件的结果代码,用于传递int类型的数据 | + | data | 只读 | string | 否 | 表示公共事件的自定义结果数据,用于传递string 类型的数据 | + | parameters | 只读 | {[key: string]: any} | 否 | 表示公共事件的附加信息 | + +- 订阅公共事件接口(callback形式) + + CommonEvent.subscribe(subscriber: CommonEventSubscriber, callback: AsyncCallback) + + - 接口参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | ------------------------------ | ---- | ------------------------------ | + | subscriber | 只读 | CommonEventSubscriber | 是 | 表示订阅者对象 | + | callback | 只读 | AsyncCallback | 是 | 表示接收公共事件数据的回调函数 | + + - 返回值 + + void + + - 示例代码 + + **无序事件:** + + ```js + var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 + //订阅者信息 + var subscribeInfo = { + events: ["event"] + }; + //订阅公共事件回调 + function SubscribeCallBack(err, data) { + console.info("==========================>SubscribeCallBack=======================>"); + } + //创建订阅者回调 + function CreateSubscriberCallBack(err, data) { + console.info("==========================>CreateSubscriberCallBack=======================>"); + subscriber = data; + //订阅公共事件 + CommonEvent.subscribe(subscriber, SubscribeCallBack); + } + //创建订阅者 + CommonEvent.createSubscriber(subscribeInfo, CreateSubscriberCallBack); + ``` + + **有序事件:** + + ```js + var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 + //订阅者信息 + var subscribeInfo = { + events: ["event"] + }; + + //设置有序公共事件的结果代码回调 + function SetCodeCallBack(err) { + console.info("==========================>SetCodeCallBack=======================>"); + } + //设置有序公共事件的结果数据回调 + function SetDataCallBack(err) { + console.info("==========================>SetDataCallBack=======================>"); + } + //完成本次有序公共事件处理回调 + function FinishCommonEventCallBack(err) { + console.info("==========================>FinishCommonEventCallBack=======================>"); + } + //订阅公共事件回调 + function SubscribeCallBack(err, data) { + console.info("==========================>SubscribeCallBack=======================>"); + //设置有序公共事件的结果代码 + subscriber.setCode(0, SetCodeCallBack); + //设置有序公共事件的结果数据 + subscriber.setData("publish_data_changed", SetDataCallBack); + //完成本次有序公共事件处理 + subscriber.finishCommonEvent(FinishCommonEventCallBack) + } + + //创建订阅者回调 + function CreateSubscriberCallBack(err, data) { + console.info("==========================>CreateSubscriberCallBack=======================>"); + subscriber = data; + //订阅公共事件 + CommonEvent.subscribe(subscriber, SubscribeCallBack); + } + + //创建订阅者 + CommonEvent.createSubscriber(subscribeInfo, CreateSubscriberCallBack); + ``` + + + +#### 发布公共事件 + +发布指定事件名称的公共事件,并可携带事件相关数据、属性、限制等信息。 + +- CommonEventPublishData类型说明 + + CommonEventPublishData封装公共事件发布相关数据、属性及限制等信息,包括公共事件类型(有序或无序)、订阅者所需权限等。 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | --------------------- | -------- | -------------------- | ---- | ---------------------------- | + | bundleName | 只读 | string | 否 | 表示包名称 | + | code | 只读 | int | 否 | 表示公共事件的结果代码 | + | data | 只读 | string | 否 | 表示公共事件的自定义结果数据 | + | subscriberPermissions | 只读 | Array | 否 | 表示订阅者所需的权限 | + | isOrdered | 只读 | bool | 否 | 表示是否是有序事件 | + | parameters | 只读 | {[key: string]: any} | 否 | 表示公共事件的附加信息 | + +- 发布公共事件接口(callback形式) + + CommonEvent.publish(event: string, callback: AsyncCallback) + + - 接口参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | ------------------------ | + | event | 只读 | string | 是 | 表示要发送的公共事件名称 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //发布公共事件回调 + function PublishCallBack(err) { + console.info("==========================>PublishCallBack=======================>"); + console.info("==========================>err:=======================>", err.code); + } + //发布公共事件 + CommonEvent.publish("publish_event", PublishCallBack); + ``` + +- 发布公共事件指定发布信息接口(callback形式) + + CommonEvent.publish(event: string, options: CommonEventPublishData, callback: AsyncCallback) + + - 接口参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ---------------------- | ---- | ------------------------ | + | event | 只读 | string | 是 | 表示要发布的公共事件名称 | + | options | 只读 | CommonEventPublishData | 是 | 表示发布公共事件的属性 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //公共事件相关信息 + var options = { + code: 0; //公共事件的初始代码 + data: "initial data"; //公共事件的初始数据 + isOrdered: true; //有序公共事件 + } + //发布公共事件回调 + function PublishCallBack(err) { + console.info("==========================>PublishCallBack=======================>"); + } + //发布公共事件 + CommonEvent.publish("publish_event", options, PublishCallBack); + ``` + + + + +#### 取消订阅公共事件 + +- 取消订阅公共事件接口(callback形式) + + CommonEvent.unsubscribe(subscriber: CommonEventSubscriber, callback?: AsyncCallback) + + - 接口参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | --------------------- | ---- | ---------------------- | + | subscriber | 只读 | CommonEventSubscriber | 是 | 表示订阅者对象 | + | callback | 只读 | AsyncCallback | 是 | 表示取消订阅的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 + //订阅者信息 + var subscribeInfo = { + events: ["event"] + }; + //订阅公共事件回调 + function SubscribeCallBack(err, data) { + console.info("==========================>SubscribeCallBack=======================>"); + } + //创建订阅者回调 + function CreateSubscriberCallBack(err, data) { + console.info("==========================>CreateSubscriberCallBack=======================>"); + subscriber = data; + //订阅公共事件 + CommonEvent.subscribe(subscriber, SubscribeCallBack); + } + //取消订阅公共事件回调 + function UnsubscribeCallBack(err) { + console.info("==========================>UnsubscribeCallBack=======================>"); + } + //创建订阅者 + CommonEvent.createSubscriber(subscribeInfo, CreateSubscriberCallBack); + //取消订阅公共事件 + CommonEvent.unsubscribe(subscriber, UnsubscribeCallBack); + ``` + + + + +#### 系统公共事件列表 + +| 系统公共事件宏 | 系统公共事件名称 | 订阅者所需权限 | +| ------------------------------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------ | +| COMMON_EVENT_BOOT_COMPLETED | usual.event.BOOT_COMPLETED | ohos.permission.RECEIVER_STARTUP_COMPLETED | +| COMMON_EVENT_LOCKED_BOOT_COMPLETED | usual.event.LOCKED_BOOT_COMPLETED | ohos.permission.RECEIVER_STARTUP_COMPLETED | +| COMMON_EVENT_SHUTDOWN | usual.event.SHUTDOWN | 无 | +| COMMON_EVENT_BATTERY_CHANGED | usual.event.BATTERY_CHANGED | 无 | +| COMMON_EVENT_BATTERY_LOW | usual.event.BATTERY_LOW | 无 | +| COMMON_EVENT_BATTERY_OKAY | usual.event.BATTERY_OKAY | 无 | +| COMMON_EVENT_POWER_CONNECTED | usual.event.POWER_CONNECTED | 无 | +| COMMON_EVENT_POWER_DISCONNECTED | usual.event.POWER_DISCONNECTED | 无 | +| COMMON_EVENT_SCREEN_OFF | usual.event.SCREEN_OFF | 无 | +| COMMON_EVENT_SCREEN_ON | usual.event.SCREEN_ON | 无 | +| COMMON_EVENT_USER_PRESENT | usual.event.USER_PRESENT | 无 | +| COMMON_EVENT_TIME_TICK | usual.event.TIME_TICK | 无 | +| COMMON_EVENT_TIME_CHANGED | usual.event.TIME_CHANGED | 无 | +| COMMON_EVENT_DATE_CHANGED | usual.event.DATE_CHANGED | 无 | +| COMMON_EVENT_TIMEZONE_CHANGED | usual.event.TIMEZONE_CHANGED | 无 | +| COMMON_EVENT_CLOSE_SYSTEM_DIALOGS | usual.event.CLOSE_SYSTEM_DIALOGS | 无 | +| COMMON_EVENT_PACKAGE_ADDED | usual.event.PACKAGE_ADDED | 无 | +| COMMON_EVENT_PACKAGE_REPLACED | usual.event.PACKAGE_REPLACED | 无 | +| COMMON_EVENT_MY_PACKAGE_REPLACED | usual.event.MY_PACKAGE_REPLACED | 无 | +| COMMON_EVENT_PACKAGE_REMOVED | usual.event.PACKAGE_REMOVED | 无 | +| COMMON_EVENT_PACKAGE_FULLY_REMOVED | usual.event.PACKAGE_FULLY_REMOVED | 无 | +| COMMON_EVENT_PACKAGE_CHANGED | usual.event.PACKAGE_CHANGED | 无 | +| COMMON_EVENT_PACKAGE_RESTARTED | usual.event.PACKAGE_RESTARTED | 无 | +| COMMON_EVENT_PACKAGE_DATA_CLEARED | usual.event.PACKAGE_DATA_CLEARED | 无 | +| COMMON_EVENT_PACKAGES_SUSPENDED | usual.event.PACKAGES_SUSPENDED | 无 | +| COMMON_EVENT_PACKAGES_UNSUSPENDED | usual.event.PACKAGES_UNSUSPENDED | 无 | +| COMMON_EVENT_MY_PACKAGE_SUSPENDED | usual.event.MY_PACKAGE_SUSPENDED | 无 | +| COMMON_EVENT_MY_PACKAGE_UNSUSPENDED | usual.event.MY_PACKAGE_UNSUSPENDED | 无 | +| COMMON_EVENT_UID_REMOVED | usual.event.UID_REMOVED | 无 | +| COMMON_EVENT_PACKAGE_FIRST_LAUNCH | usual.event.PACKAGE_FIRST_LAUNCH | 无 | +| COMMON_EVENT_PACKAGE_NEEDS_VERIFICATION | usual.event.PACKAGE_NEEDS_VERIFICATION | 无 | +| COMMON_EVENT_PACKAGE_VERIFIED | usual.event.PACKAGE_VERIFIED | 无 | +| COMMON_EVENT_EXTERNAL_APPLICATIONS_AVAILABLE | usual.event.EXTERNAL_APPLICATIONS_AVAILABLE | 无 | +| COMMON_EVENT_EXTERNAL_APPLICATIONS_UNAVAILABLE | usual.event.EXTERNAL_APPLICATIONS_UNAVAILABLE | 无 | +| COMMON_EVENT_CONFIGURATION_CHANGED | usual.event.CONFIGURATION_CHANGED | 无 | +| COMMON_EVENT_LOCALE_CHANGED | usual.event.LOCALE_CHANGED | 无 | +| COMMON_EVENT_MANAGE_PACKAGE_STORAGE | usual.event.MANAGE_PACKAGE_STORAGE | 无 | +| COMMON_EVENT_DRIVE_MODE | common.event.DRIVE_MODE | 无 | +| COMMON_EVENT_HOME_MODE | common.event.HOME_MODE | 无 | +| COMMON_EVENT_OFFICE_MODE | common.event.OFFICE_MODE | 无 | +| COMMON_EVENT_USER_STARTED | usual.event.USER_STARTED | 无 | +| COMMON_EVENT_USER_BACKGROUND | usual.event.USER_BACKGROUND | 无 | +| COMMON_EVENT_USER_FOREGROUND | usual.event.USER_FOREGROUND | 无 | +| COMMON_EVENT_USER_SWITCHED | usual.event.USER_SWITCHED | ohos.permission.MANAGE_USERS | +| COMMON_EVENT_USER_STARTING | usual.event.USER_STARTING | ohos.permission.INTERACT_ACROSS_USERS | +| COMMON_EVENT_USER_UNLOCKED | usual.event.USER_UNLOCKED | 无 | +| COMMON_EVENT_USER_STOPPING | usual.event.USER_STOPPING | ohos.permission.INTERACT_ACROSS_USERS | +| COMMON_EVENT_USER_STOPPED | usual.event.USER_STOPPED | 无 | +| COMMON_EVENT_HWID_LOGIN | common.event.HWID_LOGIN | 无 | +| COMMON_EVENT_HWID_LOGOUT | common.event.HWID_LOGOUT | 无 | +| COMMON_EVENT_HWID_TOKEN_INVALID | common.event.HWID_TOKEN_INVALID | 无 | +| COMMON_EVENT_HWID_LOGOFF | common.event.HWID_LOGOFF | 无 | +| COMMON_EVENT_WIFI_POWER_STATE | usual.event.wifi.POWER_STATE | 无 | +| COMMON_EVENT_WIFI_SCAN_FINISHED | usual.event.wifi.SCAN_FINISHED | ohos.permission.LOCATION | +| COMMON_EVENT_WIFI_RSSI_VALUE | usual.event.wifi.RSSI_VALUE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_CONN_STATE | usual.event.wifi.CONN_STATE | 无 | +| COMMON_EVENT_WIFI_HOTSPOT_STATE | usual.event.wifi.HOTSPOT_STATE | 无 | +| COMMON_EVENT_WIFI_AP_STA_JOIN | usual.event.wifi.WIFI_HS_STA_JOIN | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_AP_STA_LEAVE | usual.event.wifi.WIFI_HS_STA_LEAVE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_MPLINK_STATE_CHANGE | usual.event.wifi.mplink.STATE_CHANGE | ohos.permission.MPLINK_CHANGE_STATE | +| COMMON_EVENT_WIFI_P2P_CONN_STATE | usual.event.wifi.p2p.CONN_STATE_CHANGE | ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION | +| COMMON_EVENT_WIFI_P2P_STATE_CHANGED | usual.event.wifi.p2p.STATE_CHANGE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_P2P_PEERS_STATE_CHANGED | usual.event.wifi.p2p.DEVICES_CHANGE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_P2P_PEERS_DISCOVERY_STATE_CHANGED | usual.event.wifi.p2p.PEER_DISCOVERY_STATE_CHANGE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_P2P_CURRENT_DEVICE_STATE_CHANGED | usual.event.wifi.p2p.CURRENT_DEVICE_CHANGE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_P2P_GROUP_STATE_CHANGED | usual.event.wifi.p2p.GROUP_STATE_CHANGED | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_BLUETOOTH_HANDSFREE_AG_CONNECT_STATE_UPDATE | usual.event.bluetooth.handsfree.ag.CONNECT_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HANDSFREE_AG_CURRENT_DEVICE_UPDATE | usual.event.bluetooth.handsfree.ag.CURRENT_DEVICE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HANDSFREE_AG_AUDIO_STATE_UPDATE | usual.event.bluetooth.handsfree.ag.AUDIO_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_CONNECT_STATE_UPDATE | usual.event.bluetooth.a2dpsource.CONNECT_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_CURRENT_DEVICE_UPDATE | usual.event.bluetooth.a2dpsource.CURRENT_DEVICE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_PLAYING_STATE_UPDATE | usual.event.bluetooth.a2dpsource.PLAYING_STATE_UPDATE" | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_AVRCP_CONNECT_STATE_UPDATE | usual.event.bluetooth.a2dpsource.AVRCP_CONNECT_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_CODEC_VALUE_UPDATE | usual.event.bluetooth.a2dpsource.CODEC_VALUE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_DISCOVERED | usual.event.bluetooth.remotedevice.DISCOVERED | ohos.permission.USE_BLUETOOTH and ohos.permission.LOCATION | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_CLASS_VALUE_UPDATE | usual.event.bluetooth.remotedevice.CLASS_VALUE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_ACL_CONNECTED | usual.event.bluetooth.remotedevice.ACL_CONNECTED | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_ACL_DISCONNECTED | usual.event.bluetooth.remotedevice.ACL_DISCONNECTED | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_NAME_UPDATE | usual.event.bluetooth.remotedevice.NAME_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_PAIR_STATE | usual.event.bluetooth.remotedevice.PAIR_STATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_BATTERY_VALUE_UPDATE | usual.event.bluetooth.remotedevice.BATTERY_VALUE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_SDP_RESULT | usual.event.bluetooth.remotedevice.SDP_RESULT | 无 | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_UUID_VALUE | usual.event.bluetooth.remotedevice.UUID_VALUE | ohos.permission.DISCOVER_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_PAIRING_REQ | usual.event.bluetooth.remotedevice.PAIRING_REQ | ohos.permission.DISCOVER_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_PAIRING_CANCEL | usual.event.bluetooth.remotedevice.PAIRING_CANCEL | 无 | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_CONNECT_REQ | usual.event.bluetooth.remotedevice.CONNECT_REQ | 无 | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_CONNECT_REPLY | usual.event.bluetooth.remotedevice.CONNECT_REPLY | 无 | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_CONNECT_CANCEL | usual.event.bluetooth.remotedevice.CONNECT_CANCEL | 无 | +| COMMON_EVENT_BLUETOOTH_HANDSFREEUNIT_CONNECT_STATE_UPDATE | usual.event.bluetooth.handsfreeunit.CONNECT_STATE_UPDATE | 无 | +| COMMON_EVENT_BLUETOOTH_HANDSFREEUNIT_AUDIO_STATE_UPDATE | usual.event.bluetooth.handsfreeunit.AUDIO_STATE_UPDATE | 无 | +| COMMON_EVENT_BLUETOOTH_HANDSFREEUNIT_AG_COMMON_EVENT | usual.event.bluetooth.handsfreeunit.AG_COMMON_EVENT | 无 | +| COMMON_EVENT_BLUETOOTH_HANDSFREEUNIT_AG_CALL_STATE_UPDATE | usual.event.bluetooth.handsfreeunit.AG_CALL_STATE_UPDATE | 无 | +| COMMON_EVENT_BLUETOOTH_HOST_STATE_UPDATE | usual.event.bluetooth.host.STATE_UPDATE | 无 | +| COMMON_EVENT_BLUETOOTH_HOST_REQ_DISCOVERABLE | usual.event.bluetooth.host.REQ_DISCOVERABLE | 无 | +| COMMON_EVENT_BLUETOOTH_HOST_REQ_ENABLE | usual.event.bluetooth.host.REQ_ENABLE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_REQ_DISABLE | usual.event.bluetooth.host.REQ_DISABLE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_SCAN_MODE_UPDATE | usual.event.bluetooth.host.SCAN_MODE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_DISCOVERY_STARTED | usual.event.bluetooth.host.DISCOVERY_STARTED | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_DISCOVERY_FINISHED | usual.event.bluetooth.host.DISCOVERY_FINISHED | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_NAME_UPDATE | usual.event.bluetooth.host.NAME_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSINK_CONNECT_STATE_UPDATE | usual.event.bluetooth.a2dpsink.CONNECT_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSINK_PLAYING_STATE_UPDATE | usual.event.bluetooth.a2dpsink.PLAYING_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSINK_AUDIO_STATE_UPDATE | usual.event.bluetooth.a2dpsink.AUDIO_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_NFC_ACTION_ADAPTER_STATE_CHANGED | usual.event.nfc.action.ADAPTER_STATE_CHANGED | 无 | +| COMMON_EVENT_NFC_ACTION_RF_FIELD_ON_DETECTED | usual.event.nfc.action.RF_FIELD_ON_DETECTED | ohos.permission.MANAGE_SECURE_SETTINGS | +| COMMON_EVENT_NFC_ACTION_RF_FIELD_OFF_DETECTED | usual.event.nfc.action.RF_FIELD_OFF_DETECTED | ohos.permission.MANAGE_SECURE_SETTINGS | +| COMMON_EVENT_DISCHARGING | usual.event.DISCHARGING | 无 | +| COMMON_EVENT_CHARGING | usual.event.CHARGING | 无 | +| COMMON_EVENT_DEVICE_IDLE_MODE_CHANGED | usual.event.DEVICE_IDLE_MODE_CHANGED | 无 | +| COMMON_EVENT_POWER_SAVE_MODE_CHANGED | usual.event.POWER_SAVE_MODE_CHANGED | 无 | +| COMMON_EVENT_USER_ADDED | usual.event.USER_ADDED | ohos.permission.MANAGE_USERS | +| COMMON_EVENT_USER_REMOVED | usual.event.USER_REMOVED | ohos.permission.MANAGE_USERS | +| COMMON_EVENT_ABILITY_ADDED | common.event.ABILITY_ADDED | ohos.permission.LISTEN_BUNDLE_CHANGE | +| COMMON_EVENT_ABILITY_REMOVED | common.event.ABILITY_REMOVED | ohos.permission.LISTEN_BUNDLE_CHANGE | +| COMMON_EVENT_ABILITY_UPDATED | common.event.ABILITY_UPDATED | ohos.permission.LISTEN_BUNDLE_CHANGE | +| COMMON_EVENT_LOCATION_MODE_STATE_CHANGED | usual.event.location.MODE_STATE_CHANGED | 无 | +| COMMON_EVENT_IVI_SLEEP | common.event.IVI_SLEEP | 无 | +| COMMON_EVENT_IVI_PAUSE | common.event.IVI_PAUSE | 无 | +| COMMON_EVENT_IVI_STANDBY | common.event.IVI_STANDBY | 无 | +| COMMON_EVENT_IVI_LASTMODE_SAVE | common.event.IVI_LASTMODE_SAVE | 无 | +| COMMON_EVENT_IVI_VOLTAGE_ABNORMAL | common.event.IVI_VOLTAGE_ABNORMAL | 无 | +| COMMON_EVENT_IVI_HIGH_TEMPERATURE | common.event.IVI_HIGH_TEMPERATURE | 无 | +| COMMON_EVENT_IVI_EXTREME_TEMPERATURE | common.event.IVI_EXTREME_TEMPERATURE | 无 | +| COMMON_EVENT_IVI_TEMPERATURE_ABNORMAL | common.event.IVI_TEMPERATURE_ABNORMAL | 无 | +| COMMON_EVENT_IVI_VOLTAGE_RECOVERY | common.event.IVI_VOLTAGE_RECOVERY | 无 | +| COMMON_EVENT_IVI_TEMPERATURE_RECOVERY | common.event.IVI_TEMPERATURE_RECOVERY | 无 | +| COMMON_EVENT_IVI_ACTIVE | common.event.IVI_ACTIVE | 无 | +| COMMON_EVENT_USB_DEVICE_ATTACHED | usual.event.hardware.usb.action.USB_DEVICE_ATTACHED | 无 | +| COMMON_EVENT_USB_DEVICE_DETACHED | usual.event.hardware.usb.action.USB_DEVICE_DETACHED | 无 | +| COMMON_EVENT_USB_ACCESSORY_ATTACHED | usual.event.hardware.usb.action.USB_ACCESSORY_ATTACHED | 无 | +| COMMON_EVENT_USB_ACCESSORY_DETACHED | usual.event.hardware.usb.action.USB_ACCESSORY_DETACHED | 无 | +| COMMON_EVENT_DISK_REMOVED | usual.event.data.DISK_REMOVED | ohos.permission.WRITE_USER_STORAGE or ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_UNMOUNTED | usual.event.data.DISK_UNMOUNTED | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_MOUNTED | usual.event.data.DISK_MOUNTED | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_BAD_REMOVAL | usual.event.data.DISK_BAD_REMOVAL | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_UNMOUNTABLE | usual.event.data.DISK_UNMOUNTABLE | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_EJECT | usual.event.data.DISK_EJECT | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_VISIBLE_ACCOUNTS_UPDATED | usual.event.data.VISIBLE_ACCOUNTS_UPDATED | ohos.permission.GET_APP_ACCOUNTS | +| COMMON_EVENT_ACCOUNT_DELETED | usual.event.data.ACCOUNT_DELETED | ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS | +| COMMON_EVENT_FOUNDATION_READY | common.event.FOUNDATION_READY | ohos.permission.RECEIVER_STARTUP_COMPLETED | +| COMMON_EVENT_AIRPLANE_MODE_CHANGED | usual.event.AIRPLANE_MODE | 无 | diff --git "a/zh-cn/application-dev/quick-start/Notification\345\274\200\345\217\221\346\214\207\345\215\227.md" "b/zh-cn/application-dev/quick-start/Notification\345\274\200\345\217\221\346\214\207\345\215\227.md" new file mode 100644 index 0000000000..ae87bce4b7 --- /dev/null +++ "b/zh-cn/application-dev/quick-start/Notification\345\274\200\345\217\221\346\214\207\345\215\227.md" @@ -0,0 +1,1583 @@ + + +Notification开发指南 + +#### 简介 + +OpenHarmony通过ANS(Advanced Notification Service,通知系统服务)对通知类型的消息进行管理,支持多种通知类型,包括文本,长文本,多文本,图片,社交,媒体等。所有系统服务以及应用都可以通过通知接口发送通知消息,用户可以通过SystemUI查看所有通知消息。 + +通知常见的使用场景: + +- 显示接收到短消息、即时消息等。 +- 显示应用的推送消息,如广告、版本更新等。 +- 显示当前正在进行的事件,如导航、下载等。 + + + +#### 接口列表 + +| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | +| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | +| Notification.publish(request: NotificationRequest, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.publish(request: NotificationRequest) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancel(id: number, label: string, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancel(id:number, label?:string) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancel(id: number, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancelAll(callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancelAll() | 支持 | 支持 | 支持 | 支持 | +| Notification.addSlot(type: SlotType, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.addSlot(type: SlotType) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlot(slotType: SlotType, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlot(slotType: SlotType) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlots(callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlots() | 支持 | 支持 | 支持 | 支持 | +| Notification.removeSlot(slotType: SlotType, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.removeSlot(slotType: SlotType) | 支持 | 支持 | 支持 | 支持 | +| Notification.removeAllSlots(callback: AsyncCallback): void | 支持 | 支持 | 支持 | 支持 | +| Notification.removeAllSlots(): Promise | 支持 | 支持 | 支持 | 支持 | +| Notification.getActiveNotificationCount(callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.getActiveNotificationCount() | 支持 | 支持 | 支持 | 支持 | +| Notification.getActiveNotifications(callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | +| Notification.getActiveNotifications() | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getWantAgent(info: WantAgentInfo, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getWantAgent(info: WantAgentInfo): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getBundleName(agent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getBundleName(agent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getUid(agent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getUid(agent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.cancel(agent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.cancel(agent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.equal(agent: WantAgent, otherAgent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | + + + +#### Notification接口 + +##### 导入模块 + +```js +import Notification from '@ohos.notification'; +``` + + + +##### NotificationSlot类型说明 + +NotificationSlot可以对提示音、振动等进行设置。一个应用可以创建一个或多个NotificationSlot,在发布通知时,通过绑定不同的NotificationSlot,实现不同用途。 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------------- | -------- | ------------- | ---- | ---------------------------- | +| type | 读、写 | SlotType | 是 | 通道类型 | +| level | 读、写 | SlotLevel | 否 | 通知级别 | +| desc | 读、写 | string | 否 | 通知渠道描述信息 | +| badgeFlag | 读、写 | boolean | 否 | 是否显示角标 | +| bypassDnd | 读、写 | boolean | 否 | 置是否在系统中绕过免打扰模式 | +| lockscreenVisibility | 读、写 | boolean | 否 | 在锁定屏幕上显示通知的模式 | +| vibrationEnabled | 读、写 | boolean | 否 | 是否可振动 | +| sound | 读、写 | string | 否 | 通知提示音 | +| lightEnabled | 读、写 | boolean | 否 | 是否闪灯 | +| lightColor | 读、写 | number | 否 | 通知灯颜色 | +| vibrationValues | 读、写 | Array | 否 | 通知振动样式 | + +- SlotType类型说明 + +| 名称 | 读写属性 | 类型 | 描述 | +| -------------------- | -------- | ---- | -------- | +| SOCIAL_COMMUNICATION | 只读 | enum | 社交类型 | +| SERVICE_INFORMATION | 只读 | enum | 服务类型 | +| CONTENT_INFORMATION | 只读 | enum | 内容类型 | +| OTHER_TYPES | 只读 | enum | 其他类型 | + +- SlotLevel类型说明 + +| 名称 | 读写属性 | 类型 | 描述 | +| ------------- | -------- | ---- | ------------------------------------------------------------ | +| LEVEL_NONE | 只读 | enum | 表示通知不发布 | +| LEVEL_MIN | 只读 | enum | 表示通知可以发布,但不在状态栏显示,不自动弹出,无提示音;该级别不适用于前台服务的场景 | +| LEVEL_LOW | 只读 | enum | 表示通知发布后在状态栏显示,不自动弹出,无提示音 | +| LEVEL_DEFAULT | 只读 | enum | 表示通知发布后在状态栏显示,不自动弹出,触发提示音 | +| LEVEL_HIGH | 只读 | enum | 表示通知发布后在状态栏显示,自动弹出,触发提示音 | + + + +##### NotificationRequest类型说明 + +NotificationRequest用于设置具体的通知对象,包括设置通知的属性,如:通知的分发时间、小图标、大图标、自动删除等参数,以及设置具体的通知类型,如普通文本、长文本等。 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------------- | -------- | ------------------------------- | ---- | -------------------------- | +| content | 读、写 | NotificationContent | 是 | 通知内容 | +| id | 读、写 | number | 否 | 通知ID | +| slotType | 读、写 | SlotType | 否 | 通道类型 | +| isOngoing | 读、写 | boolean | 否 | 是否进行时通知 | +| isUnremovable | 读、写 | boolean | 否 | 是否可移除 | +| deliveryTime | 读、写 | number | 否 | 通知发送时间 | +| tapDismissed | 读、写 | boolean | 否 | 通知是否自动清除 | +| autoDeletedTime | 读、写 | number | 否 | 自动清除的时间 | +| wantAgent | 读、写 | WantAgent | 否 | 点击跳转的WantAgent | +| extraInfo | 读、写 | {[key: string]: any} | 否 | 扩展参数 | +| color | 读、写 | number | 否 | 通知背景颜色 | +| colorEnabled | 读、写 | boolean | 否 | 通知背景颜色是否使能 | +| isAlertOnce | 读、写 | boolean | 否 | 设置是否仅有一次此通知警报 | +| isStopwatch | 读、写 | boolean | 否 | 是否显示已用时间 | +| isCountDown | 读、写 | boolean | 否 | 是否显示倒计时时间 | +| isFloatingIcon | 读、写 | boolean | 否 | 是否显示状态栏图标 | +| isFloatingIcon | 读、写 | boolean | 否 | 是否显示状态栏图标 | +| label | 读、写 | string | 否 | 通知标签 | +| badgeIconStyle | 读、写 | number | 否 | 通知角标类型 | +| showDeliveryTime | 读、写 | boolean | 否 | 是否显示分发时间 | +| actionButtons | 读、写 | Array | 否 | 通知按钮,最多两个按钮 | +| smallIcon | 读、写 | PixelMap | 否 | 通知小图标 | +| largeIcon | 读、写 | PixelMap | 否 | 通知大图标 | +| creatorBundleName | 只读 | string | 否 | 创建通知的包名 | +| creatorUid | 只读 | number | 否 | 创建通知的UID | +| creatorPid | 只读 | number | 否 | 创建通知的PID | +| hashCode | 只读 | string | 否 | 通知唯一标识 | + +- NotificationContent类型说明 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | ---------------------------- | ---- | -------------------- | +| contentType | 读、写 | ContentType | 是 | 通知内容类型 | +| normal | 读、写 | NotificationBasicContent | 否 | 普通类型通知内容 | +| longText | 读、写 | NotificationLongTextContent | 否 | 长文本类型通知内容 | +| multiLine | 读、写 | NotificationMultiLineContent | 否 | 多行文本类型通知内容 | +| picture | 读、写 | NotificationPictureContent | 否 | 图片类型通知内容 | + +- ContentType类型说明 + +| 名称 | 读写属性 | 类型 | 描述 | +| --------------------------------- | -------- | ---- | ---------------- | +| NOTIFICATION_CONTENT_BASIC_TEXT | 只读 | enum | 普通类型通知 | +| NOTIFICATION_CONTENT_LONG_TEXT | 只读 | enum | 长文本类型通知 | +| NOTIFICATION_CONTENT_PICTURE | 只读 | enum | 图片类型通知 | +| NOTIFICATION_CONTENT_CONVERSATION | 只读 | enum | 社交类型通知 | +| NOTIFICATION_CONTENT_MULTILINE | 只读 | enum | 多行文本类型通知 | + +- NotificationBasicContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------- | -------- | ------ | ---- | -------------------------------- | +| title | 读、写 | string | 是 | 通知标题 | +| text | 读、写 | string | 是 | 通知内容 | +| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | + +- NotificationLongTextContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------------- | -------- | ------ | ---- | ---------------------- | +| title | 读、写 | string | 是 | 通知标题 | +| text | 读、写 | string | 是 | 通知内容 | +| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | +| longText | 读、写 | string | 是 | 通知的长文本 | +| briefText | 读、写 | string | 是 | 通知概要内容,是对通知内容的总结 | +| expandedTitle | 读、写 | string | 是 | 通知展开时的标题 | + +- NotificationMultiLineContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | ------------- | ---- | ---------------------- | +| title | 读、写 | string | 是 | 通知标题 | +| text | 读、写 | string | 是 | 通知内容 | +| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | +| briefText | 读、写 | string | 是 | 通知概要内容,是对通知内容的总结 | +| longTitle | 读、写 | string | 是 | 通知展开时的标题 | +| lines | 读、写 | Array | 是 | 通知的多行文本 | + +- NotificationPictureContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------- | -------- | -------------- | ---- | -------------------------------- | +| title | 读、写 | string | 是 | 通知标题 | +| text | 读、写 | string | 是 | 通知内容 | +| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | +| briefText | 读、写 | string | 是 | 通知概要内容,是对通知内容的总结 | +| expandedTitle | 读、写 | string | 是 | 通知展开时的标题 | +| picture | 读、写 | image.PixelMap | 是 | 通知的图片内容 | + +- NotificationActionButton类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | -------------- | ---- | ------------------------- | +| title | 读、写 | string | 是 | 按钮标题 | +| wantAgent | 读、写 | wantAgent | 是 | 点击按钮时触发的WantAgent | +| extras | 读、写 | Array | 否 | 按钮扩展信息 | +| icon | 读、写 | image.PixelMap | 否 | 按钮图标 | + + + +##### 创建通知通道 + +- 创建通知通道(callback形式) + + Notification.addSlot(type: SlotType, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | ---------------------- | + | type | 只读 | SlotType | 是 | 要创建的通知通道的类型 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //addslot回调 + function addSlotCallBack(err) { + console.info("==========================>addSlotCallBack=======================>"); + } + Notification.addSlot(SOCIAL_COMMUNICATION, addSlotCallBack) + ``` + + + +- 创建通知通道(Promise形式) + + Notification.addSlot(type: SlotType) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | -------- | ---- | ---------------------- | + | type | 只读 | SlotType | 是 | 要创建的通知通道的类型 | + + - 返回值 + + Promise<**void**> + + - 示例代码 + + ```js + Notification.addSlot(SOCIAL_COMMUNICATION).then((void) => { + console.info("==========================>addSlotCallback=======================>"); + }); + ``` + + + +##### 获取通知通道 + +- 获取一个通知通道(callback形式) + + Notification.getSlot(slotType: SlotType, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------------------- | ---- | ----------------------------------------------------------- | + | slotType | 只读 | slotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //getSlot回调 + function getSlotCallback(err,data) { + console.info("==========================>getSlotCallback=======================>"); + } + var slotType = SOCIAL_COMMUNICATION; + Notification.getSlot(slotType, getSlotCallback) + ``` + + + +- 获取一个通知通道(Promise形式) + + Notification.getSlot(slotType) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | -------- | ---- | ----------------------------------------------------------- | + | slotType | 只读 | slotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | + + - 返回值 + + Promise + + - 示例代码 + + ```js + var slotType = SOCIAL_COMMUNICATION; + Notification.getSlot(slotType).then((data) => { + console.info("==========================>getSlotCallback=======================>"); + }); + ``` + + + +- 获取本应用程序的所有通知通道(callback形式) + + Notification.getSlots(callback: AsyncCallback>) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //getSlots回调 + function getSlotsCallback(err,data) { + console.info("==========================>getSlotsCallback=======================>"); + } + Notification.getSlots(getSlotsCallback) + ``` + + + +- 获取此应用程序的所有通知通道(Promise形式) + + Notification.getSlots() + + - 参数描述 + + 无参数 + + - 返回值 + + Promise> + + - 示例代码 + + ```js + Notification.getSlots().then((data) => { + console.info("==========================>getSlotsCallback=======================>"); + }); + ``` + + + +##### 删除通知通道 + +- 根据通知通道类型删除通知通道(callback形式) + + Notification.removeSlot(slotType: SlotType, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | ----------------------------------------------------------- | + | SlotType | 只读 | SlotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //removeSlot回调 + function removeSlotCallback(err) { + console.info("==========================>removeSlotCallback=======================>"); + } + var slotType = SOCIAL_COMMUNICATION; + Notification.removeSlot(slotType, removeSlotCallback) + ``` + + + +- 根据通知通道类型删除通知通道(Promise形式) + + Notification.removeSlot(slotType: SlotType) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | -------- | ---- | ----------------------------------------------------------- | + | SlotType | 只读 | SlotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | + + - 返回值 + + Promise<**void**> + + - 示例代码 + + ```js + var slotType = SOCIAL_COMMUNICATION; + Notification.removeSlot(slotType).then((void) => { + console.info("==========================>removeSlotCallback=======================>"); + }); + ``` + + + +- 删除所有通知通道(callback形式) + + Notification.removeAllSlots(callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + function removeAllSlotsCallBack(err) { + console.info("================>removeAllSlotsCallBack=======================>"); + } + Notification.removeAllSlots(removeAllCallBack) + ``` + + + +- 删除所有通知通道(Promise形式) + + Notification.removeAllSlots() + + - 参数描述 + + 无参数 + + - 返回值 + + Promise<**void**> + + - 示例代码 + + ```js + Notification.removeAllSlots().then((void) => { + console.info("==========================>removeAllSlotsCallBack=======================>"); + }); + ``` + + + +##### 发布通知 + +- 发布通知(callback形式) + + Notification.publish(request: NotificationRequest, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | ------------------------------------------- | + | request | 只读 | NotificationRequest | 是 | 设置要发布通知内容的NotificationRequest对象 | + | callback | 只读 | AsyncCallback | 是 | 被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //publish回调 + function publishCallback(err) { + console.info("==========================>publishCallback=======================>"); + } + //通知Request对象 + var request = { + id: 1, + content: { + contentType: notify.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, + normal: { + title: "test_title", + text: "test_text", + additionalText: "test_additionalText" + } + } + } + Notification.publish(request, publishCallback); + ``` + + + + +- 发布通知(Promise形式) + + Notification.publish(request: NotificationRequest) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------- | -------- | ------------------- | ---- | ------------------------------------------- | + | request | 只读 | NotificationRequest | 是 | 设置要发布通知内容的NotificationRequest对象 | + + - 返回值 + + Promise<**void**> + + - 示例代码 + + ```js + //通知Request对象 + var notificationRequest = { + notificationId: 1, + content: { + contentType: notify.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, + normal: { + title: "test_title", + text: "test_text", + additionalText: "test_additionalText" + } + } + } + Notification.publish(notificationRequest).then((void) => { + console.info("==========================>publishCallback=======================>"); + }); + ``` + + + +##### 取消通知 + +- 取消指定通知(callback形式) + + Notification.cancel(id: number, label: string, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | id | 只读 | number | 是 | 通知ID | + | lable | 只读 | string | 是 | 通知标签 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //cancel回调 + function cancelCallback(err) { + console.info("==========================>cancelCallback=======================>"); + } + Notification.cancel(0, "label", cancelCallback) + ``` + + + +- 取消指定通知(Promise形式) + + Notification.cancel(id:number, label?:string) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----- | -------- | ------ | ---- | -------- | + | id | 只读 | number | 是 | 通知ID | + | lable | 只读 | string | 是 | 通知标签 | + + - 返回值 + + Promise<**void**> + + - 示例代码 + + ```js + Notification.cancel(0).then((void) => { + console.info("==========================>cancelCallback=======================>"); + }); + ``` + + + +- 取消指定id通知(callback形式) + + Notification.cancel(id: number, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | id | 只读 | number | 是 | 通知ID | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //cancel回调 + function cancelCallback(err) { + console.info("==========================>cancelCallback=======================>"); + } + Notification.cancel(0, cancelCallback) + ``` + + + +- 取消所有已发布的通知(callback形式) + + Notification.cancelAll(callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //cancel回调 + function cancelAllback(err) { + console.info("==========================>cancelAllback=======================>"); + } + Notification.cancelAll(cancelCallback) + ``` + + + +- 取消所有已发布的通知(Promise形式) + + Notification.cancelAll() + + - 参数描述 + + 无参数 + + - 返回值 + + Promise + + - 示例代码 + + ```js + Notification.cancelAll().then((void) => { + console.info("==========================>cancelAllback=======================>"); + }); + ``` + + + +##### 获取当前应用活动通知 + +- 获取当前应用的活动通知数(Callback形式) + + Notification.getActiveNotificationCount(callback: AsyncCallback<**number**>) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------------- | ---- | ---------------------- | + | callback | 只读 | AsyncCallback<**number**> | 是 | 获取活动通知数回调函数 | + + - 返回值 + + void + + - 示例代码 + + ```js + function getActiveNotificationCountCallback(err, data) { + console.info("==========================>getActiveNotificationCountCallback=======================>"); + } + Notification.getActiveNotificationCount(getActiveNotificationCountCallback); + ``` + + + +- 获取当前应用的活动通知数(Promise形式) + + Notification.getActiveNotificationCount() + + - 参数描述 + + 无 + + - 返回值 + + Promise<**number**> + + - 示例代码 + + ```js + Notification.getActiveNotificationCount().then((data) => { + console.info("==========================>getActiveNotificationCountCallback=======================>"); + }); + ``` + + + +- 获取当前应用的活动通知(Callback形式) + + Notification.getActiveNotifications(callback: AsyncCallback>) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ----------------------------------------- | ---- | ------------------------------ | + | callback | 只读 | AsyncCallback> | 是 | 获取当前应用的活动通知回调函数 | + + - 返回值 + + void + + - 示例代码 + + ```js + function getActiveNotificationsCallback(err, data) { + console.info("==========================>getActiveNotificationsCallback=======================>"); + } + Notification.getActiveNotifications(getActiveNotificationsCallback); + ``` + + + +- 获取当前应用的活动通知(Promise形式) + + Notification.getActiveNotifications() + + - 参数描述 + + 无 + + - 返回值 + + Promise> + + - 示例代码 + + ```js + Notification.getActiveNotifications().then((data) => { + console.info("==========================>getActiveNotificationsCallback=======================>"); + }); + ``` + + + +#### WantAgent接口 + +##### 导入模块 + +```js +import WantAgent from '@ohos.wantAgent'; +``` + + + +##### WantAgentInfo类型说明 + +WantAgentInfo类封装了获取一个WantAgent实例所需的数据。 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------- | -------- | ------------------------------- | ---- | ---------------------- | +| wants | 读、写 | Array | 是 | 将被执行的动作列表 | +| operationType | 读、写 | wantAgent.OperationType | 是 | 动作类型 | +| requestCode | 读、写 | number | 是 | 使用者定义的一个私有值 | +| wantAgentFlags | 读、写 | Array | 否 | 动作执行属性 | +| extraInfo | 读、写 | {[key: string]: any} | 否 | 额外数据 | + +- OperationType类型说明 + +| 名称 | 读写属性 | 类型 | 描述 | +| ----------------- | -------- | ---- | ----------------------- | +| UNKNOWN_TYPE | 只读 | enum | 不识别的类型 | +| START_ABILITY | 只读 | enum | 开启一个有页面的Ability | +| START_ABILITIES | 只读 | enum | 开启多个有页面的Ability | +| START_SERVICE | 只读 | enum | 开启一个无页面的ability | +| SEND_COMMON_EVENT | 只读 | enum | 发送一个公共事件 | + +- WantAgentFlags类型说明 + + +| 名称 | 读写属性 | 类型 | 描述 | +| ------------------- | -------- | ---- | ------------------------------------------------------------ | +| ONE_TIME_FLAG | 只读 | enum | WantAgent仅能使用一次 | +| NO_BUILD_FLAG | 只读 | enum | 如果描述WantAgent对象不存在,则不创建它,直接返回null | +| CANCEL_PRESENT_FLAG | 只读 | enum | 在生成一个新的WantAgent对象前取消已存在的一个WantAgent对象 | +| UPDATE_PRESENT_FLAG | 只读 | enum | 使用新的WantAgent的额外数据替换已存在的WantAgent中的额外数据 | +| CONSTANT_FLAG | 只读 | enum | WantAgent是不可变的 | +| REPLACE_ELEMENT | 只读 | enum | 当前Want中的element属性可被WantAgent.trigger()中Want的element属性取代 | +| REPLACE_ACTION | 只读 | enum | 当前Want中的action属性可被WantAgent.trigger()中Want的action属性取代 | +| REPLACE_URI | 只读 | enum | 当前Want中的uri属性可被WantAgent.trigger()中Want的uri属性取代 | +| REPLACE_ENTITIES | 只读 | enum | 当前Want中的entities属性可被WantAgent.trigger()中Want的entities属性取代 | +| REPLACE_BUNDLE | 只读 | enum | 当前Want中的bundleName属性可被WantAgent.trigger()中Want的bundleName属性取代 | + + + +##### TriggerInfo类型说明 + +TriggerInfo类封装了主动激发一个WantAgent实例所需的数据。 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | -------------------- | ---- | ----------- | +| code | 读、写 | number | 是 | result code | +| want | 读、写 | Want | 否 | Want | +| permission | 读、写 | string | 否 | 权限定义 | +| extraInfo | 读、写 | {[key: string]: any} | 否 | 额外数据 | + + + +##### 创建WantAgent + +- 创建WantAgent(callback形式) + + WantAgent.getWantAgent(info: WantAgentInfo, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------------ | ---- | ----------------------- | + | info | 只读 | WantAgentInfo | 是 | WantAgent信息 | + | callback | 只读 | AsyncCallback | 是 | 创建WantAgent的回调方法 | + - 返回值 + + void + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + //getWantAgent回调 + function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + } + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + ``` + + + +- 创建WantAgent(Promise形式) + + WantAgent.getWantAgent(info: WantAgentInfo): Promise + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | ------------- | ---- | ------------- | + | info | 只读 | WantAgentInfo | 是 | WantAgent信息 | + - 返回值 + + Promise + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + }); + ``` + + + +##### 获取WantAgent实例的包名 + +- 获取WantAgent实例的包名(callback形式) + + WantAgent.getBundleName(agent: WantAgent, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | --------------------- | ---- | ---------------------------------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + | callback | 只读 | AsyncCallback | 是 | 获取WantAgent指定的bundle name的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + //wantAgent对象 + var WantAgent; + //getWantAgent回调 + function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent = data; + } else { + console.info('----getWantAgent failed!----'); + } + } + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + //getBundleName回调 + function getBundleNameCallback(err, data) { + console.info("==========================>getBundleNameCallback=======================>"); + } + wantAgent.getBundleName(WantAgent, getBundleNameCallback) + ``` + + + +- 获取WantAgent实例的包名(Promise形式) + + WantAgent.getBundleName(agent: WantAgent): Promise + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----- | -------- | --------- | ---- | ------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + - 返回值 + + Promise + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + //wantAgent对象 + var WantAgent; + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + WantAgent = data; + }); + wantAgent.getBundleName(WantAgent).then((data) => { + console.info("==========================>getBundleNameCallback=======================>"); + }); + ``` + + + + +##### 获取WantAgent实例的用户ID + +- 获取WantAgent实例的用户ID(callback形式) + + WantAgent.getUid(agent: WantAgent, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | --------------------- | ---- | ----------------------------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + | callback | 只读 | AsyncCallback | 是 | 获取WantAgent实例的用户ID的回调方法 | + - 返回值 + + void + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent; + + //getWantAgent回调 + function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent = data; + } else { + console.info('----getWantAgent failed!----'); + } + } + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + + //getUid回调 + function getUidCallback(err, data) { + console.info("==========================>getUidCallback=======================>"); + } + wantAgent.getUid(WantAgent, getUidCallback) + ``` + + + +- 获取WantAgent实例的用户ID(Promise形式) + + WantAgent.getUid(agent: WantAgent): Promise + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----- | -------- | --------- | ---- | ------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + - 返回值 + + Promise + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent; + + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + WantAgent = data; + }); + + wantAgent.getUid(WantAgent).then((data) => { + console.info("==========================>getUidCallback=======================>"); + }); + ``` + + + +##### 取消WantAgent实例 + +- 取消WantAgent实例(callback形式) + + WantAgent.cancel(agent: WantAgent, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | --------------------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + | callback | 只读 | AsyncCallback | 是 | 取消WantAgent实例的回调方法 | + - 返回值 + + void + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent; + + //getWantAgent回调 + function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent = data; + } else { + console.info('----getWantAgent failed!----'); + } + } + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + + //cancel回调 + function cancelCallback(err, data) { + console.info("==========================>cancelCallback=======================>"); + } + wantAgent.cancel(WantAgent, cancelCallback) + ``` + + + +- 取消WantAgent实例(Promise形式) + + WantAgent.cancel(agent: WantAgent): Promise + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----- | -------- | --------- | ---- | ------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + - 返回值 + + Promise + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent; + + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + WantAgent = data; + }); + + wantAgent.cancel(WantAgent).then((data) => { + console.info("==========================>cancelCallback=======================>"); + }); + ``` + + + + +##### 主动激发WantAgent实例 + +- 主动激发WantAgent实例(callback形式) + + WantAgent.trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | --------------------------- | ---- | ------------------------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + | triggerInfo | 只读 | TriggerInfo | 是 | TriggerInfo对象 | + | callback | 只读 | AsyncCallback | 是 | 主动激发WantAgent实例的回调方法 | + - 返回值 + + void + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent; + + //getWantAgent回调 + function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent = data; + } else { + console.info('----getWantAgent failed!----'); + } + } + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + + //cancel回调 + function triggerCallback(err, data) { + console.info("==========================>triggerCallback=======================>"); + } + wantAgent.trigger(WantAgent, triggerCallback) + ``` + + + + +##### 判断两个WantAgent实例是否相等 + +- 判断两个WantAgent实例是否相等(callback形式) + + WantAgent.equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | ---------------------- | ---- | --------------------------------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + | otherAgent | 只读 | WantAgent | 是 | WantAgent对象 | + | callback | 只读 | AsyncCallback | 是 | 判断两个WantAgent实例是否相等的回调方法 | + - 返回值 + + void + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent1; + var WantAgent2; + + //getWantAgent回调 + function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent1 = data; + WantAgent2 = data; + } else { + console.info('----getWantAgent failed!----'); + } + } + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + + //cancel回调 + function equalCallback(err, data) { + console.info("==========================>equalCallback=======================>"); + } + wantAgent.equal(WantAgent1, WantAgent1, equalCallback) + ``` + + + +- 判断两个WantAgent实例是否相等(Promise形式) + + WantAgent.equal(agent: WantAgent, otherAgent: WantAgent): Promise + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | --------- | ---- | ------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + | otherAgent | 只读 | WantAgent | 是 | WantAgent对象 | + - 返回值 + + Promise + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent1; + var WantAgent2; + + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + WantAgent = data; + }); + + wantAgent.equal(WantAgent1, WantAgent2).then((data) => { + console.info("==========================>equalCallback=======================>"); + }); + ``` + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/zh-cn/application-dev/quick-start/PageAbility\345\274\200\345\217\221\350\257\264\346\230\216.md" "b/zh-cn/application-dev/quick-start/PageAbility\345\274\200\345\217\221\350\257\264\346\230\216.md" new file mode 100644 index 0000000000..c3d2a7160f --- /dev/null +++ "b/zh-cn/application-dev/quick-start/PageAbility\345\274\200\345\217\221\350\257\264\346\230\216.md" @@ -0,0 +1,129 @@ +# PageAbility开发说明 + + + +## PageAbility介绍 + +Page模板(以下简称“Page”)是FA唯一支持的模板,用于提供与用户交互的能力。 + +## PageAbility的生命周期 + +**Ability生命周期介绍**(Ability Life Cycle)是Ability被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称(主要涉及PageAbility类型和ServiceAbility类型的Ability)。 + + - **PageAbility类型的Ability生命周期流转如下图所示** + +![PageAbility-Lifecycle](figures/page-ability-lifecycle.png) + + +**Ability生命周期状态说明:** + + - **UNINITIALIZED**:未初始状态,为临时状态,Ability被创建后会由UNINITIALIZED状态进入INITIAL状态。 + + - **INITIAL**:初始化状态,也表示停止状态,表示当前Ability未运行,Ability被启动后由INITIAL态进入INACTIVE状态。 + + - **INACTIVE**:未激活状态,表示当前窗口已显示但是无焦点状态,由于Window暂未支持焦点的概念,当前状态与ACTIVE一致。 + + - **ACTIVE**:前台激活状态,表示当前窗口已显示,并获取焦点,Ability在退到后台之前先由ACTIVE状态进入INACTIVE状态。 + + - **BACKGROUND**: 后台状态,表示当前Ability退到后台,Ability在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。 + +**PageAbility类型Ability生命周期回调如下图所示:** + +![PageAbility-Lifecycel-Callbacks](figures/page-ability-lifecycle-callbacks.png) + + + +## 启动本地PageAbility + + 导入模块 + +``` +import featureAbility from '@ohos.ability.featureAbility' +``` +``` + FeatureAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback) +``` + +* 接口说明 + + 启动新的ability(callback形式) + +* 示例 + +```javascript +import featureAbility from '@ohos.ability.featureAbility' +featureAbility.startAbility( + { + want: + { + action: "", + entities: [""], + type: "", + options: { + // indicates the grant to perform read operations on the URI + authReadUriPermission: true, + // indicates the grant to perform write operations on the URI + authWriteUriPermission: true, + // support forward intent result to origin ability + abilityForwardResult: true, + // used for marking the ability start-up is triggered by continuation + abilityContinuation: true, + // specifies whether a component does not belong to ohos + notOhosComponent: true, + // specifies whether an ability is started + abilityFormEnabled: true, + // indicates the grant for possible persisting on the URI. + authPersistableUriPermission: true, + // indicates the grant for possible persisting on the URI. + authPrefixUriPermission: true, + // support distributed scheduling system start up multiple devices + abilitySliceMultiDevice: true, + // indicates that an ability using the service template is started regardless of whether the + // host application has been started. + startForegroundAbility: true, + // install the specified ability if it's not installed. + installOnDemand: true, + // return result to origin ability slice + abilitySliceForwardResult: true, + // install the specified ability with background mode if it's not installed. + installWithBackgroundMode: true + }, + deviceId: "", + bundleName: "com.example.startability", + abilityName: "com.example.startability.MainAbility", + uri: "" + }, + }, + ); +) +``` +## 启动远程PageAbility + + 导入模块 + +``` +import featureAbility from '@ohos.ability.featureAbility' +``` + +``` +FeatureAbility.startAbility(parameter: StartAbilityParameter) +``` +* 接口说明 + + 启动远程的ability(promise形式) + 前提:通过deviceManager获取远程deviceid + +* 示例 + +```javascript + var promise = await ability.startAbility( + { + want: + { + deviceId: this.deviceId, + bundleName: "com.example.test", + abilityName: "com.example.test.MainAbility", + }, + } + ); +``` \ No newline at end of file diff --git "a/zh-cn/application-dev/quick-start/ServiceAbility\345\274\200\345\217\221\350\257\264\346\230\216.md" "b/zh-cn/application-dev/quick-start/ServiceAbility\345\274\200\345\217\221\350\257\264\346\230\216.md" new file mode 100644 index 0000000000..4226949512 --- /dev/null +++ "b/zh-cn/application-dev/quick-start/ServiceAbility\345\274\200\345\217\221\350\257\264\346\230\216.md" @@ -0,0 +1,189 @@ +# ServiceAbility开发说明 + +- [创建Service](#section17436202895812) +- [启动Service](#section944219415599) +- [连接Service](#section126857614018) + +## 创建Service + +1. Service也是一种Ability,Ability为Service提供了以下生命周期方法,开发者可以重写这些方法,来添加其他Ability请求与Service Ability交互时的处理方法。 + + - onStart() + + 该方法在创建Service的时候调用,用于Service的初始化。在Service的整个生命周期只会调用一次,调用时传入的Want应为空。 + + - onCommand() + + 在Service创建完成之后调用,该方法在客户端每次启动该Service时都会调用,开发者可以在该方法中做一些调用统计、初始化类的操作。 + + - onConnect() + + 在Ability和Service连接时调用,该方法返回IRemoteObject对象,开发者可以在该回调函数中生成对应Service的IPC通信通道,以便Ability与Service交互。Ability可以多次连接同一个Service,系统会缓存该Service的IPC通信对象,只有第一个客户端连接Service时,系统才会调用Service的onConnect方法来生成IRemoteObject对象,而后系统会将同一个RemoteObject对象传递至其他连接同一个Service的所有客户端,而无需再次调用onConnect方法。 + + - onDisconnect() + + 在Ability与绑定的Service断开连接时调用。 + + - onStop() + + 在Service销毁时调用。Service应通过实现此方法来清理任何资源,如关闭线程、注册的侦听器等。 + + 创建Service的代码示例如下: + + ```javascript + export default { + onStart(want) { + console.log('SerivceAbility onStart'); + }, + onCommand(want, restart, startId) { + console.log('SerivceAbility onCommand'); + }, + onConnect(want) { + console.log('SerivceAbility OnConnect'); + }, + onDisconnect() { + console.log('SerivceAbility OnDisConnect'); + }, + onStop() { + console.log('SerivceAbility onStop'); + }, + } + ``` + +2. 注册Service。 + + Service也需要在应用配置文件config.json中进行注册,注册类型type需要设置为service。 + + ```javascript + { + "module": { + "abilities": [ + { + "name": ".ServiceAbility", + "type": "service", + "visible": true + ... + } + ] + ... + } + ... + } + ``` + + + + +## 启动Service + +Ability为开发者提供了startAbility()方法来启动另外一个Ability。因为Service也是Ability的一种,开发者同样可以通过将Want传递给该方法来启动Service。 + +开发者可以通过构造包含BundleName与AbilityName的Want对象来设置目标Service信息。参数的含义如下: + +- BundleName:表示包名称。 +- AbilityName:表示待启动的Ability名称。 + +启动本地设备Service的代码示例如下: + +```javascript +import featureAbility from '@ohos.ability.featureability'; +var promise = await featureAbility.startAbility( + { + want: + { + bundleName: "com.jstest.serviceability", + abilityName: "com.jstest.serviceability.MainAbility", + }, + } +); +``` + +- 执行上述代码后,Ability将通过startAbility() 方法来启动Service。 + - 如果Service尚未运行,则系统会先调用onStart()来初始化Service,再回调Service的onCommand()方法来启动Service。 + - 如果Service正在运行,则系统会直接回调Service的onCommand()方法来启动Service。 + +- 停止Service + + Service一旦创建就会一直保持在后台运行,除非必须回收内存资源,否则系统不会停止或销毁Service。开发者可以在Service中通过terminateAbility()停止本Service或在其他Ability调用stopAbility()来停止Service。 + + + +## 连接Service + +如果Service需要与Page Ability或其他应用的Service Ability进行交互,则须创建用于连接的Connection。Service支持其他Ability通过connectAbility()方法与其进行连接。 + +在使用connectAbility()处理回调时,需要传入目标Service的Want与IAbilityConnection的实例。IAbilityConnection提供了以下方法供开发者实现:onConnect()是用来处理连接Service成功的回调,onDisconnect()是用来处理Service异常死亡的回调,onFailed()是用来处理连接Service失败的回调。 + +创建连接Service回调实例的代码示例如下: + +```javascript +var mRemote; +function onConnectCallback(element, remote){ + console.log('ConnectAbility onConnect Callback') + mRemote = remote; +} + +function onDisconnectCallback(element){ + console.log('ConnectAbility onDisconnect Callback') +} + +function onFailedCallback(code){ + console.log('ConnectAbility onFailed Callback') +} +``` + +连接Service的代码示例如下: + +```javascript +import featureAbility from '@ohos.ability.featureability'; +var connId = featureAbility.connectAbility( + { + bundleName: "com.jstest.serviceability", + abilityName: "com.jstest.serviceability.MainAbility", + }, + { + onConnect: onConnectCallback, + onDisconnect: onDisconnectCallback, + onFailed: onFailedCallback, + }, +); +``` + +同时,Service侧也需要在onConnect()时返回IRemoteObject,从而定义与Service进行通信的接口。onConnect()需要返回一个IRemoteObject对象,HarmonyOS提供了IRemoteObject的默认实现,用户可以通过继承rpc.RemoteObject来创建自定义的实现类。 + +Service侧把自身的实例返回给调用侧的代码示例如下: + +```javascript +import rpc from "@ohos.rpc"; + +var mMyStub; +export default { + onStart(want) { + class MyStub extends rpc.RemoteObject{ + constructor(des) { + if (typeof des === 'string') { + super(des, des.length); + } + return null; + } + onRemoteRequest(code, message, reply, option) { + } + } + mMyStub = new MyStub("ServiceAbility-test"); + }, + onCommand(want, restart, startId) { + console.log('SerivceAbility onCommand'); + }, + onConnect(want) { + console.log('SerivceAbility OnConnect'); + return mMyStub; + }, + onDisconnect() { + console.log('SerivceAbility OnDisConnect'); + }, + onStop() { + console.log('SerivceAbility onStop'); + }, +} +``` + diff --git "a/zh-cn/application-dev/quick-start/\345\237\272\344\272\216Native\347\232\204DataAbility\345\210\233\345\273\272\344\270\216\350\256\277\351\227\256.md" "b/zh-cn/application-dev/quick-start/\345\237\272\344\272\216Native\347\232\204DataAbility\345\210\233\345\273\272\344\270\216\350\256\277\351\227\256.md" new file mode 100644 index 0000000000..6a2f10ea98 --- /dev/null +++ "b/zh-cn/application-dev/quick-start/\345\237\272\344\272\216Native\347\232\204DataAbility\345\210\233\345\273\272\344\270\216\350\256\277\351\227\256.md" @@ -0,0 +1,192 @@ +# 基于Native的Data Ability创建与访问 + +- **[Data Ability基本概念](#section001)** + +- **[创建Data](#section002)** + +- **[访问Data](#section003)** + +## Data Ability基本概念 +通过Ability派生出的DataAbility类(以下简称“Data”),有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。 + +## 创建Data +### 1. Data子系统实现 +1. 基于Native的Data子系统,需要继承Ability类,成为Ability的派生类来实现功能 +2. 需要实现父类中Insert,Query,Update,Delete接口的业务内容.保证能够满足数据库存储业务的基本需求.BatchInsert与ExecuteBatch接口已经在系统中实现遍历逻辑,依赖Insert,Query,Update,Delete接口逻辑,来实现数据的批量处理. +3. 使用REGISTER_AA宏将Data的类名注册到系统服务中 + + +### 2. 子系统配置 + +| Json重要字段 | 备注说明 | +| ------------- | ------------------------------------------------------------ | +| "name" | Ability名子,对应Ability派生的Data类名 | +| "type" | Ability类型,Data对应的Ability类型未"data" | +| "uri" | 通信使用的URI | +| "srcLanguage" | Data实现语言,c++实现的Data填写c++, js实现的Data填写js | +| "visible" | 对其他应用是否可见, 设置为true时, Data才能与其他应用进行通信传输数据 | + +**config.json配置样例** + +```json +"abilities":[{ + "name": ".DataAbility", + "icon": "$media:snowball", + "label": "Data Firs Ability", + "launchType": "standard", + "orientation": "unspecified", + "type": "data", + "uri": "dataability://com.ix.DataAbility", + "srcLanguage": "c++", + "visible": true +}] +``` + +## 访问Data +### 1 JS应用开发前准备 +基础依赖包: + 1. @ohos.ability.featureAbility + 2. @ohos.data.dataability + 3. @ohos.data.rdb +与Data子系统通信的Uri字符串 + +### 2 JS应用开发接口 +工具接口类对象创建 +```js +// 作为参数传递的Uri,与config中定义的Uri的区别是多了一个"/",是因为作为参数传递的uri中,在第二个与第三个"/"中间,存在一个DeviceID的参数 +var urivar = "dataability:///com.ix.DataAbility" +var DAHelper = featureAbility.acquireDataAbilityHelper( + urivar +); +``` +数据库相关的rdb数据构建 +```js +var valuesBucket = {"name": "gaolu"} +var da = new ohos_data_ability.DataAbilityPredicates() +var valArray =new Array("value1"); +var cars = new Array({"batchInsert1" : "value1",}); +``` +向指定的Data子系统插入数据,inster调用 +```js +// callbacke方式调用: +DAHelper.insert( + urivar, + valuesBucket, + (error, data) => { + expect(typeof(data)).assertEqual("number") + } +); +// promise方式调用: +var datainsert = await DAHelper.insert( + urivar, + valuesBucket +); +``` +删除Data子系统中指定的数据, delete调用 +```js +// callbacke方式调用: +DAHelper.delete( + urivar, + da, + (error, data) => { + expect(typeof(data)).assertEqual("number") + } +); +// promise方式调用: +var datadelete = await DAHelper.delete( + urivar, + da, +); +``` +更新指定Data子系统中的数据, update调用 +```js +// callbacke方式调用: +DAHelper.update( + urivar + valuesBucket, + da, + (error, data) => { + expect(typeof(data)).assertEqual("number") + } +); +// promise方式调用: +var dataupdate = await DAHelper.update( + urivar, + valuesBucket, + da, +); +``` +在指定的Data子系统中查找数据,query调用 +```js +// callbacke方式调用: +DAHelper.query( + urivar, + valArray, + da, + (error, data) => { + expect(typeof(data)).assertEqual("object") + } +); +// promise方式调用: +var dataquery = await DAHelper.query( + urivar, + valArray, + da +); +``` +向指定的数据子系统批量插入数据,batchInsert调用 +```js +// callbacke方式调用: +DAHelper.batchInsert( + urivar, + cars, + (error, data) => { + expect(typeof(data)).assertEqual("number") + } +); +// promise方式调用: +var databatchInsert = await DAHelper.batchInsert( + urivar, + cars +); +``` +向指定的Data子系统进行数据的批量处理,executeBatch调用 +```js +// callbacke方式调用: +DAHelper.executeBatch( + urivar, + [ + { + uri: urivar, + type: featureAbility.DataAbilityOperationType.TYPE_INSERT, + valuesBucket: {"executeBatch" : "value1",}, + predicates: da, + expectedCount:0, + PredicatesBackReferences: {}, + interrupted:true, + } + ], + (error, data) => { + expect(typeof(data)).assertEqual("object") + } +); +// promise方式调用: +var dataexecuteBatch = await DAHelper.executeBatch( + urivar, + [ + { + uri: urivar, + type: featureAbility.DataAbilityOperationType.TYPE_INSERT, + valuesBucket: + { + "executeBatch" : "value1", + }, + predicates: da, + expectedCount:0, + PredicatesBackReferences: {}, + interrupted:true, + } + ] +); +``` + -- GitLab