1 2 3Notification开发指南 4 5#### 简介 6 7OpenHarmony通过ANS(Advanced Notification Service,通知系统服务)对通知类型的消息进行管理,支持多种通知类型,包括文本,长文本,多文本,图片,社交,媒体等。所有系统服务以及应用都可以通过通知接口发送通知消息,用户可以通过SystemUI查看所有通知消息。 8 9通知常见的使用场景: 10 11- 显示接收到短消息、即时消息等。 12- 显示应用的推送消息,如广告、版本更新等。 13- 显示当前正在进行的事件,如导航、下载等。 14 15 16 17#### 接口列表 18 19| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 20| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | 21| Notification.publish(request: NotificationRequest, callback: AsyncCallback<void>) | 支持 | 支持 | 支持 | 支持 | 22| Notification.publish(request: NotificationRequest) | 支持 | 支持 | 支持 | 支持 | 23| Notification.cancel(id: number, label: string, callback: AsyncCallback<void>) | 支持 | 支持 | 支持 | 支持 | 24| Notification.cancel(id:number, label?:string) | 支持 | 支持 | 支持 | 支持 | 25| Notification.cancel(id: number, callback: AsyncCallback<void>) | 支持 | 支持 | 支持 | 支持 | 26| Notification.cancelAll(callback: AsyncCallback<void>) | 支持 | 支持 | 支持 | 支持 | 27| Notification.cancelAll() | 支持 | 支持 | 支持 | 支持 | 28| Notification.addSlot(type: SlotType, callback: AsyncCallback<void>) | 支持 | 支持 | 支持 | 支持 | 29| Notification.addSlot(type: SlotType) | 支持 | 支持 | 支持 | 支持 | 30| Notification.getSlot(slotType: SlotType, callback: AsyncCallback<NotificationSlot>) | 支持 | 支持 | 支持 | 支持 | 31| Notification.getSlot(slotType: SlotType) | 支持 | 支持 | 支持 | 支持 | 32| Notification.getSlots(callback: AsyncCallback<Array<NotificationSlot>>) | 支持 | 支持 | 支持 | 支持 | 33| Notification.getSlots() | 支持 | 支持 | 支持 | 支持 | 34| Notification.removeSlot(slotType: SlotType, callback: AsyncCallback<void>) | 支持 | 支持 | 支持 | 支持 | 35| Notification.removeSlot(slotType: SlotType) | 支持 | 支持 | 支持 | 支持 | 36| Notification.removeAllSlots(callback: AsyncCallback<void>): void | 支持 | 支持 | 支持 | 支持 | 37| Notification.removeAllSlots(): Promise<void> | 支持 | 支持 | 支持 | 支持 | 38| Notification.getActiveNotificationCount(callback: AsyncCallback<number>) | 支持 | 支持 | 支持 | 支持 | 39| Notification.getActiveNotificationCount() | 支持 | 支持 | 支持 | 支持 | 40| Notification.getActiveNotifications(callback: AsyncCallback<Array<NotificationRequest>>) | 支持 | 支持 | 支持 | 支持 | 41| Notification.getActiveNotifications() | 支持 | 支持 | 支持 | 支持 | 42| WantAgent.getWantAgent(info: WantAgentInfo, callback: AsyncCallback<WantAgent>) | 支持 | 支持 | 支持 | 支持 | 43| WantAgent.getWantAgent(info: WantAgentInfo): Promise<WantAgent> | 支持 | 支持 | 支持 | 支持 | 44| WantAgent.getBundleName(agent: WantAgent, callback: AsyncCallback<string>) | 支持 | 支持 | 支持 | 支持 | 45| WantAgent.getBundleName(agent: WantAgent): Promise<string> | 支持 | 支持 | 支持 | 支持 | 46| WantAgent.getUid(agent: WantAgent, callback: AsyncCallback<number>) | 支持 | 支持 | 支持 | 支持 | 47| WantAgent.getUid(agent: WantAgent): Promise<number> | 支持 | 支持 | 支持 | 支持 | 48| WantAgent.cancel(agent: WantAgent, callback: AsyncCallback<void>) | 支持 | 支持 | 支持 | 支持 | 49| WantAgent.cancel(agent: WantAgent): Promise<void> | 支持 | 支持 | 支持 | 支持 | 50| WantAgent.trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback<CompleteData>) | 支持 | 支持 | 支持 | 支持 | 51| WantAgent.equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback<boolean>) | 支持 | 支持 | 支持 | 支持 | 52| WantAgent.equal(agent: WantAgent, otherAgent: WantAgent): Promise<boolean> | 支持 | 支持 | 支持 | 支持 | 53 54 55 56#### Notification接口 57 58##### 导入模块 59 60```js 61import Notification from '@ohos.notification'; 62``` 63 64 65 66##### NotificationSlot类型说明 67 68NotificationSlot可以对提示音、振动等进行设置。一个应用可以创建一个或多个NotificationSlot,在发布通知时,通过绑定不同的NotificationSlot,实现不同用途。 69 70| 名称 | 读写属性 | 类型 | 必填 | 描述 | 71| -------------------- | -------- | ------------- | ---- | ---------------------------- | 72| type | 读、写 | SlotType | 是 | 通道类型 | 73| level | 读、写 | SlotLevel | 否 | 通知级别 | 74| desc | 读、写 | string | 否 | 通知渠道描述信息 | 75| badgeFlag | 读、写 | boolean | 否 | 是否显示角标 | 76| bypassDnd | 读、写 | boolean | 否 | 置是否在系统中绕过免打扰模式 | 77| lockscreenVisibility | 读、写 | boolean | 否 | 在锁定屏幕上显示通知的模式 | 78| vibrationEnabled | 读、写 | boolean | 否 | 是否可振动 | 79| sound | 读、写 | string | 否 | 通知提示音 | 80| lightEnabled | 读、写 | boolean | 否 | 是否闪灯 | 81| lightColor | 读、写 | number | 否 | 通知灯颜色 | 82| vibrationValues | 读、写 | Array<number> | 否 | 通知振动样式 | 83 84- SlotType类型说明 85 86| 名称 | 读写属性 | 类型 | 描述 | 87| -------------------- | -------- | ---- | -------- | 88| SOCIAL_COMMUNICATION | 只读 | enum | 社交类型 | 89| SERVICE_INFORMATION | 只读 | enum | 服务类型 | 90| CONTENT_INFORMATION | 只读 | enum | 内容类型 | 91| OTHER_TYPES | 只读 | enum | 其他类型 | 92 93- SlotLevel类型说明 94 95| 名称 | 读写属性 | 类型 | 描述 | 96| ------------- | -------- | ---- | ------------------------------------------------------------ | 97| LEVEL_NONE | 只读 | enum | 表示通知不发布 | 98| LEVEL_MIN | 只读 | enum | 表示通知可以发布,但不在状态栏显示,不自动弹出,无提示音;该级别不适用于前台服务的场景 | 99| LEVEL_LOW | 只读 | enum | 表示通知发布后在状态栏显示,不自动弹出,无提示音 | 100| LEVEL_DEFAULT | 只读 | enum | 表示通知发布后在状态栏显示,不自动弹出,触发提示音 | 101| LEVEL_HIGH | 只读 | enum | 表示通知发布后在状态栏显示,自动弹出,触发提示音 | 102 103 104 105##### NotificationRequest类型说明 106 107NotificationRequest用于设置具体的通知对象,包括设置通知的属性,如:通知的分发时间、小图标、大图标、自动删除等参数,以及设置具体的通知类型,如普通文本、长文本等。 108 109| 名称 | 读写属性 | 类型 | 必填 | 描述 | 110| ----------------- | -------- | ------------------------------- | ---- | -------------------------- | 111| content | 读、写 | NotificationContent | 是 | 通知内容 | 112| id | 读、写 | number | 否 | 通知ID | 113| slotType | 读、写 | SlotType | 否 | 通道类型 | 114| isOngoing | 读、写 | boolean | 否 | 是否进行时通知 | 115| isUnremovable | 读、写 | boolean | 否 | 是否可移除 | 116| deliveryTime | 读、写 | number | 否 | 通知发送时间 | 117| tapDismissed | 读、写 | boolean | 否 | 通知是否自动清除 | 118| autoDeletedTime | 读、写 | number | 否 | 自动清除的时间 | 119| wantAgent | 读、写 | WantAgent | 否 | 点击跳转的WantAgent | 120| extraInfo | 读、写 | {[key: string]: any} | 否 | 扩展参数 | 121| color | 读、写 | number | 否 | 通知背景颜色 | 122| colorEnabled | 读、写 | boolean | 否 | 通知背景颜色是否使能 | 123| isAlertOnce | 读、写 | boolean | 否 | 设置是否仅有一次此通知警报 | 124| isStopwatch | 读、写 | boolean | 否 | 是否显示已用时间 | 125| isCountDown | 读、写 | boolean | 否 | 是否显示倒计时时间 | 126| isFloatingIcon | 读、写 | boolean | 否 | 是否显示状态栏图标 | 127| isFloatingIcon | 读、写 | boolean | 否 | 是否显示状态栏图标 | 128| label | 读、写 | string | 否 | 通知标签 | 129| badgeIconStyle | 读、写 | number | 否 | 通知角标类型 | 130| showDeliveryTime | 读、写 | boolean | 否 | 是否显示分发时间 | 131| actionButtons | 读、写 | Array<NotificationActionButton> | 否 | 通知按钮,最多两个按钮 | 132| smallIcon | 读、写 | PixelMap | 否 | 通知小图标 | 133| largeIcon | 读、写 | PixelMap | 否 | 通知大图标 | 134| creatorBundleName | 只读 | string | 否 | 创建通知的包名 | 135| creatorUid | 只读 | number | 否 | 创建通知的UID | 136| creatorPid | 只读 | number | 否 | 创建通知的PID | 137| hashCode | 只读 | string | 否 | 通知唯一标识 | 138 139- NotificationContent类型说明 140 141 142| 名称 | 读写属性 | 类型 | 必填 | 描述 | 143| ----------- | -------- | ---------------------------- | ---- | -------------------- | 144| contentType | 读、写 | ContentType | 是 | 通知内容类型 | 145| normal | 读、写 | NotificationBasicContent | 否 | 普通类型通知内容 | 146| longText | 读、写 | NotificationLongTextContent | 否 | 长文本类型通知内容 | 147| multiLine | 读、写 | NotificationMultiLineContent | 否 | 多行文本类型通知内容 | 148| picture | 读、写 | NotificationPictureContent | 否 | 图片类型通知内容 | 149 150- ContentType类型说明 151 152| 名称 | 读写属性 | 类型 | 描述 | 153| --------------------------------- | -------- | ---- | ---------------- | 154| NOTIFICATION_CONTENT_BASIC_TEXT | 只读 | enum | 普通类型通知 | 155| NOTIFICATION_CONTENT_LONG_TEXT | 只读 | enum | 长文本类型通知 | 156| NOTIFICATION_CONTENT_PICTURE | 只读 | enum | 图片类型通知 | 157| NOTIFICATION_CONTENT_CONVERSATION | 只读 | enum | 社交类型通知 | 158| NOTIFICATION_CONTENT_MULTILINE | 只读 | enum | 多行文本类型通知 | 159 160- NotificationBasicContent类型说明 161 162| 名称 | 读写属性 | 类型 | 必填 | 描述 | 163| -------------- | -------- | ------ | ---- | -------------------------------- | 164| title | 读、写 | string | 是 | 通知标题 | 165| text | 读、写 | string | 是 | 通知内容 | 166| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | 167 168- NotificationLongTextContent类型说明 169 170| 名称 | 读写属性 | 类型 | 必填 | 描述 | 171| ------------- | -------- | ------ | ---- | ---------------------- | 172| title | 读、写 | string | 是 | 通知标题 | 173| text | 读、写 | string | 是 | 通知内容 | 174| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | 175| longText | 读、写 | string | 是 | 通知的长文本 | 176| briefText | 读、写 | string | 是 | 通知概要内容,是对通知内容的总结 | 177| expandedTitle | 读、写 | string | 是 | 通知展开时的标题 | 178 179- NotificationMultiLineContent类型说明 180 181| 名称 | 读写属性 | 类型 | 必填 | 描述 | 182| --------- | -------- | ------------- | ---- | ---------------------- | 183| title | 读、写 | string | 是 | 通知标题 | 184| text | 读、写 | string | 是 | 通知内容 | 185| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | 186| briefText | 读、写 | string | 是 | 通知概要内容,是对通知内容的总结 | 187| longTitle | 读、写 | string | 是 | 通知展开时的标题 | 188| lines | 读、写 | Array<String> | 是 | 通知的多行文本 | 189 190- NotificationPictureContent类型说明 191 192| 名称 | 读写属性 | 类型 | 必填 | 描述 | 193| -------------- | -------- | -------------- | ---- | -------------------------------- | 194| title | 读、写 | string | 是 | 通知标题 | 195| text | 读、写 | string | 是 | 通知内容 | 196| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | 197| briefText | 读、写 | string | 是 | 通知概要内容,是对通知内容的总结 | 198| expandedTitle | 读、写 | string | 是 | 通知展开时的标题 | 199| picture | 读、写 | image.PixelMap | 是 | 通知的图片内容 | 200 201- NotificationActionButton类型说明 202 203| 名称 | 读写属性 | 类型 | 必填 | 描述 | 204| --------- | -------- | -------------- | ---- | ------------------------- | 205| title | 读、写 | string | 是 | 按钮标题 | 206| wantAgent | 读、写 | wantAgent | 是 | 点击按钮时触发的WantAgent | 207| extras | 读、写 | Array<String> | 否 | 按钮扩展信息 | 208| icon | 读、写 | image.PixelMap | 否 | 按钮图标 | 209 210 211 212##### 创建通知通道 213 214- 创建通知通道(callback形式) 215 216 Notification.addSlot(type: SlotType, callback: AsyncCallback<void>) 217 218 - 参数描述 219 220 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 221 | -------- | -------- | ------------------- | ---- | ---------------------- | 222 | type | 只读 | SlotType | 是 | 要创建的通知通道的类型 | 223 | callback | 只读 | AsyncCallback<void> | 是 | 表示被指定的回调方法 | 224 225 - 返回值 226 227 void 228 229 - 示例代码 230 231 ```js 232 //addslot回调 233 function addSlotCallBack(err) { 234 console.info("==========================>addSlotCallBack=======================>"); 235 } 236 Notification.addSlot(SOCIAL_COMMUNICATION, addSlotCallBack) 237 ``` 238 239 240 241- 创建通知通道(Promise形式) 242 243 Notification.addSlot(type: SlotType) 244 245 - 参数描述 246 247 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 248 | ---- | -------- | -------- | ---- | ---------------------- | 249 | type | 只读 | SlotType | 是 | 要创建的通知通道的类型 | 250 251 - 返回值 252 253 Promise<**void**> 254 255 - 示例代码 256 257 ```js 258 Notification.addSlot(SOCIAL_COMMUNICATION).then((void) => { 259 console.info("==========================>addSlotCallback=======================>"); 260 }); 261 ``` 262 263 264 265##### 获取通知通道 266 267- 获取一个通知通道(callback形式) 268 269 Notification.getSlot(slotType: SlotType, callback: AsyncCallback<NotificationSlot>) 270 271 - 参数描述 272 273 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 274 | -------- | -------- | ------------------------------- | ---- | ----------------------------------------------------------- | 275 | slotType | 只读 | slotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | 276 | callback | 只读 | AsyncCallback<NotificationSlot> | 是 | 表示被指定的回调方法 | 277 278 - 返回值 279 280 void 281 282 - 示例代码 283 284 ```js 285 //getSlot回调 286 function getSlotCallback(err,data) { 287 console.info("==========================>getSlotCallback=======================>"); 288 } 289 var slotType = SOCIAL_COMMUNICATION; 290 Notification.getSlot(slotType, getSlotCallback) 291 ``` 292 293 294 295- 获取一个通知通道(Promise形式) 296 297 Notification.getSlot(slotType) 298 299 - 参数描述 300 301 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 302 | -------- | -------- | -------- | ---- | ----------------------------------------------------------- | 303 | slotType | 只读 | slotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | 304 305 - 返回值 306 307 Promise<NotificationSlot> 308 309 - 示例代码 310 311 ```js 312 var slotType = SOCIAL_COMMUNICATION; 313 Notification.getSlot(slotType).then((data) => { 314 console.info("==========================>getSlotCallback=======================>"); 315 }); 316 ``` 317 318 319 320- 获取本应用程序的所有通知通道(callback形式) 321 322 Notification.getSlots(callback: AsyncCallback<Array<NotificationSlot>>) 323 324 - 参数描述 325 326 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 327 | -------- | -------- | ------------------------------- | ---- | -------------------- | 328 | callback | 只读 | AsyncCallback<NotificationSlot> | 是 | 表示被指定的回调方法 | 329 330 - 返回值 331 332 void 333 334 - 示例代码 335 336 ```js 337 //getSlots回调 338 function getSlotsCallback(err,data) { 339 console.info("==========================>getSlotsCallback=======================>"); 340 } 341 Notification.getSlots(getSlotsCallback) 342 ``` 343 344 345 346- 获取此应用程序的所有通知通道(Promise形式) 347 348 Notification.getSlots() 349 350 - 参数描述 351 352 无参数 353 354 - 返回值 355 356 Promise<Array<NotificationSlot>> 357 358 - 示例代码 359 360 ```js 361 Notification.getSlots().then((data) => { 362 console.info("==========================>getSlotsCallback=======================>"); 363 }); 364 ``` 365 366 367 368##### 删除通知通道 369 370- 根据通知通道类型删除通知通道(callback形式) 371 372 Notification.removeSlot(slotType: SlotType, callback: AsyncCallback<void>) 373 374 - 参数描述 375 376 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 377 | -------- | -------- | ------------------- | ---- | ----------------------------------------------------------- | 378 | SlotType | 只读 | SlotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | 379 | callback | 只读 | AsyncCallback<void> | 是 | 表示被指定的回调方法 | 380 381 - 返回值 382 383 void 384 385 - 示例代码 386 387 ```js 388 //removeSlot回调 389 function removeSlotCallback(err) { 390 console.info("==========================>removeSlotCallback=======================>"); 391 } 392 var slotType = SOCIAL_COMMUNICATION; 393 Notification.removeSlot(slotType, removeSlotCallback) 394 ``` 395 396 397 398- 根据通知通道类型删除通知通道(Promise形式) 399 400 Notification.removeSlot(slotType: SlotType) 401 402 - 参数描述 403 404 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 405 | -------- | -------- | -------- | ---- | ----------------------------------------------------------- | 406 | SlotType | 只读 | SlotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | 407 408 - 返回值 409 410 Promise<**void**> 411 412 - 示例代码 413 414 ```js 415 var slotType = SOCIAL_COMMUNICATION; 416 Notification.removeSlot(slotType).then((void) => { 417 console.info("==========================>removeSlotCallback=======================>"); 418 }); 419 ``` 420 421 422 423- 删除所有通知通道(callback形式) 424 425 Notification.removeAllSlots(callback: AsyncCallback<void>) 426 427 - 参数描述 428 429 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 430 | -------- | -------- | ------------------- | ---- | -------------------- | 431 | callback | 只读 | AsyncCallback<void> | 是 | 表示被指定的回调方法 | 432 433 - 返回值 434 435 void 436 437 - 示例代码 438 439 ```js 440 function removeAllSlotsCallBack(err) { 441 console.info("================>removeAllSlotsCallBack=======================>"); 442 } 443 Notification.removeAllSlots(removeAllCallBack) 444 ``` 445 446 447 448- 删除所有通知通道(Promise形式) 449 450 Notification.removeAllSlots() 451 452 - 参数描述 453 454 无参数 455 456 - 返回值 457 458 Promise<**void**> 459 460 - 示例代码 461 462 ```js 463 Notification.removeAllSlots().then((void) => { 464 console.info("==========================>removeAllSlotsCallBack=======================>"); 465 }); 466 ``` 467 468 469 470##### 发布通知 471 472- 发布通知(callback形式) 473 474 Notification.publish(request: NotificationRequest, callback: AsyncCallback<void>) 475 476 - 参数描述 477 478 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 479 | -------- | -------- | ------------------- | ---- | ------------------------------------------- | 480 | request | 只读 | NotificationRequest | 是 | 设置要发布通知内容的NotificationRequest对象 | 481 | callback | 只读 | AsyncCallback<void> | 是 | 被指定的回调方法 | 482 483 - 返回值 484 485 void 486 487 - 示例代码 488 489 ```js 490 //publish回调 491 function publishCallback(err) { 492 console.info("==========================>publishCallback=======================>"); 493 } 494 //通知Request对象 495 var request = { 496 id: 1, 497 content: { 498 contentType: notify.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, 499 normal: { 500 title: "test_title", 501 text: "test_text", 502 additionalText: "test_additionalText" 503 } 504 } 505 } 506 Notification.publish(request, publishCallback); 507 ``` 508 509 510 511 512- 发布通知(Promise形式) 513 514 Notification.publish(request: NotificationRequest) 515 516 - 参数描述 517 518 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 519 | ------- | -------- | ------------------- | ---- | ------------------------------------------- | 520 | request | 只读 | NotificationRequest | 是 | 设置要发布通知内容的NotificationRequest对象 | 521 522 - 返回值 523 524 Promise<**void**> 525 526 - 示例代码 527 528 ```js 529 //通知Request对象 530 var notificationRequest = { 531 notificationId: 1, 532 content: { 533 contentType: notify.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, 534 normal: { 535 title: "test_title", 536 text: "test_text", 537 additionalText: "test_additionalText" 538 } 539 } 540 } 541 Notification.publish(notificationRequest).then((void) => { 542 console.info("==========================>publishCallback=======================>"); 543 }); 544 ``` 545 546 547 548##### 取消通知 549 550- 取消指定通知(callback形式) 551 552 Notification.cancel(id: number, label: string, callback: AsyncCallback<void>) 553 554 - 参数描述 555 556 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 557 | -------- | -------- | ------------------- | ---- | -------------------- | 558 | id | 只读 | number | 是 | 通知ID | 559 | lable | 只读 | string | 是 | 通知标签 | 560 | callback | 只读 | AsyncCallback<void> | 是 | 表示被指定的回调方法 | 561 562 - 返回值 563 564 void 565 566 - 示例代码 567 568 ```js 569 //cancel回调 570 function cancelCallback(err) { 571 console.info("==========================>cancelCallback=======================>"); 572 } 573 Notification.cancel(0, "label", cancelCallback) 574 ``` 575 576 577 578- 取消指定通知(Promise形式) 579 580 Notification.cancel(id:number, label?:string) 581 582 - 参数描述 583 584 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 585 | ----- | -------- | ------ | ---- | -------- | 586 | id | 只读 | number | 是 | 通知ID | 587 | lable | 只读 | string | 是 | 通知标签 | 588 589 - 返回值 590 591 Promise<**void**> 592 593 - 示例代码 594 595 ```js 596 Notification.cancel(0).then((void) => { 597 console.info("==========================>cancelCallback=======================>"); 598 }); 599 ``` 600 601 602 603- 取消指定id通知(callback形式) 604 605 Notification.cancel(id: number, callback: AsyncCallback<void>) 606 607 - 参数描述 608 609 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 610 | -------- | -------- | ------------------- | ---- | -------------------- | 611 | id | 只读 | number | 是 | 通知ID | 612 | callback | 只读 | AsyncCallback<void> | 是 | 表示被指定的回调方法 | 613 614 - 返回值 615 616 void 617 618 - 示例代码 619 620 ```js 621 //cancel回调 622 function cancelCallback(err) { 623 console.info("==========================>cancelCallback=======================>"); 624 } 625 Notification.cancel(0, cancelCallback) 626 ``` 627 628 629 630- 取消所有已发布的通知(callback形式) 631 632 Notification.cancelAll(callback: AsyncCallback<void>) 633 634 - 参数描述 635 636 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 637 | -------- | -------- | ------------------- | ---- | -------------------- | 638 | callback | 只读 | AsyncCallback<void> | 是 | 表示被指定的回调方法 | 639 640 - 返回值 641 642 void 643 644 - 示例代码 645 646 ```js 647 //cancel回调 648 function cancelAllback(err) { 649 console.info("==========================>cancelAllback=======================>"); 650 } 651 Notification.cancelAll(cancelCallback) 652 ``` 653 654 655 656- 取消所有已发布的通知(Promise形式) 657 658 Notification.cancelAll() 659 660 - 参数描述 661 662 无参数 663 664 - 返回值 665 666 Promise<void> 667 668 - 示例代码 669 670 ```js 671 Notification.cancelAll().then((void) => { 672 console.info("==========================>cancelAllback=======================>"); 673 }); 674 ``` 675 676 677 678##### 获取当前应用活动通知 679 680- 获取当前应用的活动通知数(Callback形式) 681 682 Notification.getActiveNotificationCount(callback: AsyncCallback<**number**>) 683 684 - 参数描述 685 686 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 687 | -------- | -------- | ------------------------- | ---- | ---------------------- | 688 | callback | 只读 | AsyncCallback<**number**> | 是 | 获取活动通知数回调函数 | 689 690 - 返回值 691 692 void 693 694 - 示例代码 695 696 ```js 697 function getActiveNotificationCountCallback(err, data) { 698 console.info("==========================>getActiveNotificationCountCallback=======================>"); 699 } 700 Notification.getActiveNotificationCount(getActiveNotificationCountCallback); 701 ``` 702 703 704 705- 获取当前应用的活动通知数(Promise形式) 706 707 Notification.getActiveNotificationCount() 708 709 - 参数描述 710 711 无 712 713 - 返回值 714 715 Promise<**number**> 716 717 - 示例代码 718 719 ```js 720 Notification.getActiveNotificationCount().then((data) => { 721 console.info("==========================>getActiveNotificationCountCallback=======================>"); 722 }); 723 ``` 724 725 726 727- 获取当前应用的活动通知(Callback形式) 728 729 Notification.getActiveNotifications(callback: AsyncCallback<Array<NotificationRequest>>) 730 731 - 参数描述 732 733 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 734 | -------- | -------- | ----------------------------------------- | ---- | ------------------------------ | 735 | callback | 只读 | AsyncCallback<Array<NotificationRequest>> | 是 | 获取当前应用的活动通知回调函数 | 736 737 - 返回值 738 739 void 740 741 - 示例代码 742 743 ```js 744 function getActiveNotificationsCallback(err, data) { 745 console.info("==========================>getActiveNotificationsCallback=======================>"); 746 } 747 Notification.getActiveNotifications(getActiveNotificationsCallback); 748 ``` 749 750 751 752- 获取当前应用的活动通知(Promise形式) 753 754 Notification.getActiveNotifications() 755 756 - 参数描述 757 758 无 759 760 - 返回值 761 762 Promise<Array<NotificationRequest>> 763 764 - 示例代码 765 766 ```js 767 Notification.getActiveNotifications().then((data) => { 768 console.info("==========================>getActiveNotificationsCallback=======================>"); 769 }); 770 ``` 771 772 773 774#### WantAgent接口 775 776##### 导入模块 777 778```js 779import WantAgent from '@ohos.wantAgent'; 780``` 781 782 783 784##### WantAgentInfo类型说明 785 786WantAgentInfo类封装了获取一个WantAgent实例所需的数据。 787 788| 名称 | 读写属性 | 类型 | 必填 | 描述 | 789| -------------- | -------- | ------------------------------- | ---- | ---------------------- | 790| wants | 读、写 | Array<Want> | 是 | 将被执行的动作列表 | 791| operationType | 读、写 | wantAgent.OperationType | 是 | 动作类型 | 792| requestCode | 读、写 | number | 是 | 使用者定义的一个私有值 | 793| wantAgentFlags | 读、写 | Array<wantAgent.WantAgentFlags> | 否 | 动作执行属性 | 794| extraInfo | 读、写 | {[key: string]: any} | 否 | 额外数据 | 795 796- OperationType类型说明 797 798| 名称 | 读写属性 | 类型 | 描述 | 799| ----------------- | -------- | ---- | ----------------------- | 800| UNKNOWN_TYPE | 只读 | enum | 不识别的类型 | 801| START_ABILITY | 只读 | enum | 开启一个有页面的Ability | 802| START_ABILITIES | 只读 | enum | 开启多个有页面的Ability | 803| START_SERVICE | 只读 | enum | 开启一个无页面的ability | 804| SEND_COMMON_EVENT | 只读 | enum | 发送一个公共事件 | 805 806- WantAgentFlags类型说明 807 808 809| 名称 | 读写属性 | 类型 | 描述 | 810| ------------------- | -------- | ---- | ------------------------------------------------------------ | 811| ONE_TIME_FLAG | 只读 | enum | WantAgent仅能使用一次 | 812| NO_BUILD_FLAG | 只读 | enum | 如果描述WantAgent对象不存在,则不创建它,直接返回null | 813| CANCEL_PRESENT_FLAG | 只读 | enum | 在生成一个新的WantAgent对象前取消已存在的一个WantAgent对象 | 814| UPDATE_PRESENT_FLAG | 只读 | enum | 使用新的WantAgent的额外数据替换已存在的WantAgent中的额外数据 | 815| CONSTANT_FLAG | 只读 | enum | WantAgent是不可变的 | 816| REPLACE_ELEMENT | 只读 | enum | 当前Want中的element属性可被WantAgent.trigger()中Want的element属性取代 | 817| REPLACE_ACTION | 只读 | enum | 当前Want中的action属性可被WantAgent.trigger()中Want的action属性取代 | 818| REPLACE_URI | 只读 | enum | 当前Want中的uri属性可被WantAgent.trigger()中Want的uri属性取代 | 819| REPLACE_ENTITIES | 只读 | enum | 当前Want中的entities属性可被WantAgent.trigger()中Want的entities属性取代 | 820| REPLACE_BUNDLE | 只读 | enum | 当前Want中的bundleName属性可被WantAgent.trigger()中Want的bundleName属性取代 | 821 822 823 824##### TriggerInfo类型说明 825 826TriggerInfo类封装了主动激发一个WantAgent实例所需的数据。 827 828| 名称 | 读写属性 | 类型 | 必填 | 描述 | 829| ---------- | -------- | -------------------- | ---- | ----------- | 830| code | 读、写 | number | 是 | result code | 831| want | 读、写 | Want | 否 | Want | 832| permission | 读、写 | string | 否 | 权限定义 | 833| extraInfo | 读、写 | {[key: string]: any} | 否 | 额外数据 | 834 835 836 837##### 创建WantAgent 838 839- 创建WantAgent(callback形式) 840 841 WantAgent.getWantAgent(info: WantAgentInfo, callback: AsyncCallback<WantAgent>) 842 843 - 参数描述 844 845 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 846 | -------- | -------- | ------------------------ | ---- | ----------------------- | 847 | info | 只读 | WantAgentInfo | 是 | WantAgent信息 | 848 | callback | 只读 | AsyncCallback<WantAgent> | 是 | 创建WantAgent的回调方法 | 849 - 返回值 850 851 void 852 853 - 示例代码 854 855 ```js 856 import wantAgent from '@ohos.wantAgent'; 857 import { OperationType, Flags } from '@ohos.wantagent'; 858 //getWantAgent回调 859 function getWantAgentCallback(err, data) { 860 console.info("==========================>getWantAgentCallback=======================>"); 861 } 862 //WantAgentInfo对象 863 var wantAgentInfo = { 864 wants: [ 865 { 866 deviceId: "deviceId", 867 bundleName: "com.neu.setResultOnAbilityResultTest1", 868 abilityName: "com.example.test.MainAbility", 869 action: "action1", 870 entities: ["entity1"], 871 type: "MIMETYPE", 872 uri: "key={true,true,false}", 873 parameters: 874 { 875 mykey0: 2222, 876 mykey1: [1, 2, 3], 877 mykey2: "[1, 2, 3]", 878 mykey3: "ssssssssssssssssssssssssss", 879 mykey4: [false, true, false], 880 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 881 mykey6: true, 882 } 883 } 884 ], 885 operationType: OperationType.START_ABILITIES, 886 requestCode: 0, 887 wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] 888 } 889 wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) 890 ``` 891 892 893 894- 创建WantAgent(Promise形式) 895 896 WantAgent.getWantAgent(info: WantAgentInfo): Promise<WantAgent> 897 898 - 参数描述 899 900 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 901 | ---- | -------- | ------------- | ---- | ------------- | 902 | info | 只读 | WantAgentInfo | 是 | WantAgent信息 | 903 - 返回值 904 905 Promise<WantAgent> 906 907 - 示例代码 908 909 ```js 910 import wantAgent from '@ohos.wantAgent'; 911 import { OperationType, Flags } from '@ohos.wantagent'; 912 //WantAgentInfo对象 913 var wantAgentInfo = { 914 wants: [ 915 { 916 deviceId: "deviceId", 917 bundleName: "com.neu.setResultOnAbilityResultTest1", 918 abilityName: "com.example.test.MainAbility", 919 action: "action1", 920 entities: ["entity1"], 921 type: "MIMETYPE", 922 uri: "key={true,true,false}", 923 parameters: 924 { 925 mykey0: 2222, 926 mykey1: [1, 2, 3], 927 mykey2: "[1, 2, 3]", 928 mykey3: "ssssssssssssssssssssssssss", 929 mykey4: [false, true, false], 930 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 931 mykey6: true, 932 } 933 } 934 ], 935 operationType: OperationType.START_ABILITIES, 936 requestCode: 0, 937 wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] 938 } 939 wantAgent.getWantAgent(wantAgentInfo).then((data) => { 940 console.info("==========================>getWantAgentCallback=======================>"); 941 }); 942 ``` 943 944 945 946##### 获取WantAgent实例的包名 947 948- 获取WantAgent实例的包名(callback形式) 949 950 WantAgent.getBundleName(agent: WantAgent, callback: AsyncCallback<string>) 951 952 - 参数描述 953 954 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 955 | -------- | -------- | --------------------- | ---- | ---------------------------------------- | 956 | agent | 只读 | WantAgent | 是 | WantAgent对象 | 957 | callback | 只读 | AsyncCallback<string> | 是 | 获取WantAgent指定的bundle name的回调方法 | 958 959 - 返回值 960 961 void 962 963 - 示例代码 964 965 ```js 966 import wantAgent from '@ohos.wantAgent'; 967 import { OperationType, Flags } from '@ohos.wantagent'; 968 //wantAgent对象 969 var WantAgent; 970 //getWantAgent回调 971 function getWantAgentCallback(err, data) { 972 console.info("==========================>getWantAgentCallback=======================>"); 973 if (err.code == 0) { 974 WantAgent = data; 975 } else { 976 console.info('----getWantAgent failed!----'); 977 } 978 } 979 //WantAgentInfo对象 980 var wantAgentInfo = { 981 wants: [ 982 { 983 deviceId: "deviceId", 984 bundleName: "com.neu.setResultOnAbilityResultTest1", 985 abilityName: "com.example.test.MainAbility", 986 action: "action1", 987 entities: ["entity1"], 988 type: "MIMETYPE", 989 uri: "key={true,true,false}", 990 parameters: 991 { 992 mykey0: 2222, 993 mykey1: [1, 2, 3], 994 mykey2: "[1, 2, 3]", 995 mykey3: "ssssssssssssssssssssssssss", 996 mykey4: [false, true, false], 997 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 998 mykey6: true, 999 } 1000 } 1001 ], 1002 operationType: OperationType.START_ABILITIES, 1003 requestCode: 0, 1004 wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] 1005 } 1006 wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) 1007 //getBundleName回调 1008 function getBundleNameCallback(err, data) { 1009 console.info("==========================>getBundleNameCallback=======================>"); 1010 } 1011 wantAgent.getBundleName(WantAgent, getBundleNameCallback) 1012 ``` 1013 1014 1015 1016- 获取WantAgent实例的包名(Promise形式) 1017 1018 WantAgent.getBundleName(agent: WantAgent): Promise<string> 1019 1020 - 参数描述 1021 1022 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 1023 | ----- | -------- | --------- | ---- | ------------- | 1024 | agent | 只读 | WantAgent | 是 | WantAgent对象 | 1025 - 返回值 1026 1027 Promise<string> 1028 1029 - 示例代码 1030 1031 ```js 1032 import wantAgent from '@ohos.wantAgent'; 1033 import { OperationType, Flags } from '@ohos.wantagent'; 1034 //wantAgent对象 1035 var WantAgent; 1036 //WantAgentInfo对象 1037 var wantAgentInfo = { 1038 wants: [ 1039 { 1040 deviceId: "deviceId", 1041 bundleName: "com.neu.setResultOnAbilityResultTest1", 1042 abilityName: "com.example.test.MainAbility", 1043 action: "action1", 1044 entities: ["entity1"], 1045 type: "MIMETYPE", 1046 uri: "key={true,true,false}", 1047 parameters: 1048 { 1049 mykey0: 2222, 1050 mykey1: [1, 2, 3], 1051 mykey2: "[1, 2, 3]", 1052 mykey3: "ssssssssssssssssssssssssss", 1053 mykey4: [false, true, false], 1054 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 1055 mykey6: true, 1056 } 1057 } 1058 ], 1059 operationType: OperationType.START_ABILITIES, 1060 requestCode: 0, 1061 wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] 1062 } 1063 wantAgent.getWantAgent(wantAgentInfo).then((data) => { 1064 console.info("==========================>getWantAgentCallback=======================>"); 1065 WantAgent = data; 1066 }); 1067 wantAgent.getBundleName(WantAgent).then((data) => { 1068 console.info("==========================>getBundleNameCallback=======================>"); 1069 }); 1070 ``` 1071 1072 1073 1074 1075##### 获取WantAgent实例的用户ID 1076 1077- 获取WantAgent实例的用户ID(callback形式) 1078 1079 WantAgent.getUid(agent: WantAgent, callback: AsyncCallback<number>) 1080 1081 - 参数描述 1082 1083 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 1084 | -------- | -------- | --------------------- | ---- | ----------------------------------- | 1085 | agent | 只读 | WantAgent | 是 | WantAgent对象 | 1086 | callback | 只读 | AsyncCallback<number> | 是 | 获取WantAgent实例的用户ID的回调方法 | 1087 - 返回值 1088 1089 void 1090 1091 - 示例代码 1092 1093 ```js 1094 import wantAgent from '@ohos.wantAgent'; 1095 import { OperationType, Flags } from '@ohos.wantagent'; 1096 1097 //wantAgent对象 1098 var WantAgent; 1099 1100 //getWantAgent回调 1101 function getWantAgentCallback(err, data) { 1102 console.info("==========================>getWantAgentCallback=======================>"); 1103 if (err.code == 0) { 1104 WantAgent = data; 1105 } else { 1106 console.info('----getWantAgent failed!----'); 1107 } 1108 } 1109 //WantAgentInfo对象 1110 var wantAgentInfo = { 1111 wants: [ 1112 { 1113 deviceId: "deviceId", 1114 bundleName: "com.neu.setResultOnAbilityResultTest1", 1115 abilityName: "com.example.test.MainAbility", 1116 action: "action1", 1117 entities: ["entity1"], 1118 type: "MIMETYPE", 1119 uri: "key={true,true,false}", 1120 parameters: 1121 { 1122 mykey0: 2222, 1123 mykey1: [1, 2, 3], 1124 mykey2: "[1, 2, 3]", 1125 mykey3: "ssssssssssssssssssssssssss", 1126 mykey4: [false, true, false], 1127 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 1128 mykey6: true, 1129 } 1130 } 1131 ], 1132 operationType: OperationType.START_ABILITIES, 1133 requestCode: 0, 1134 wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] 1135 } 1136 1137 wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) 1138 1139 //getUid回调 1140 function getUidCallback(err, data) { 1141 console.info("==========================>getUidCallback=======================>"); 1142 } 1143 wantAgent.getUid(WantAgent, getUidCallback) 1144 ``` 1145 1146 1147 1148- 获取WantAgent实例的用户ID(Promise形式) 1149 1150 WantAgent.getUid(agent: WantAgent): Promise<number> 1151 1152 - 参数描述 1153 1154 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 1155 | ----- | -------- | --------- | ---- | ------------- | 1156 | agent | 只读 | WantAgent | 是 | WantAgent对象 | 1157 - 返回值 1158 1159 Promise<number> 1160 1161 - 示例代码 1162 1163 ```js 1164 import wantAgent from '@ohos.wantAgent'; 1165 import { OperationType, Flags } from '@ohos.wantagent'; 1166 1167 //wantAgent对象 1168 var WantAgent; 1169 1170 //WantAgentInfo对象 1171 var wantAgentInfo = { 1172 wants: [ 1173 { 1174 deviceId: "deviceId", 1175 bundleName: "com.neu.setResultOnAbilityResultTest1", 1176 abilityName: "com.example.test.MainAbility", 1177 action: "action1", 1178 entities: ["entity1"], 1179 type: "MIMETYPE", 1180 uri: "key={true,true,false}", 1181 parameters: 1182 { 1183 mykey0: 2222, 1184 mykey1: [1, 2, 3], 1185 mykey2: "[1, 2, 3]", 1186 mykey3: "ssssssssssssssssssssssssss", 1187 mykey4: [false, true, false], 1188 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 1189 mykey6: true, 1190 } 1191 } 1192 ], 1193 operationType: OperationType.START_ABILITIES, 1194 requestCode: 0, 1195 wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] 1196 } 1197 1198 wantAgent.getWantAgent(wantAgentInfo).then((data) => { 1199 console.info("==========================>getWantAgentCallback=======================>"); 1200 WantAgent = data; 1201 }); 1202 1203 wantAgent.getUid(WantAgent).then((data) => { 1204 console.info("==========================>getUidCallback=======================>"); 1205 }); 1206 ``` 1207 1208 1209 1210##### 取消WantAgent实例 1211 1212- 取消WantAgent实例(callback形式) 1213 1214 WantAgent.cancel(agent: WantAgent, callback: AsyncCallback<void>) 1215 1216 - 参数描述 1217 1218 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 1219 | -------- | -------- | ------------------- | ---- | --------------------------- | 1220 | agent | 只读 | WantAgent | 是 | WantAgent对象 | 1221 | callback | 只读 | AsyncCallback<void> | 是 | 取消WantAgent实例的回调方法 | 1222 - 返回值 1223 1224 void 1225 1226 - 示例代码 1227 1228 ```js 1229 import wantAgent from '@ohos.wantAgent'; 1230 import { OperationType, Flags } from '@ohos.wantagent'; 1231 1232 //wantAgent对象 1233 var WantAgent; 1234 1235 //getWantAgent回调 1236 function getWantAgentCallback(err, data) { 1237 console.info("==========================>getWantAgentCallback=======================>"); 1238 if (err.code == 0) { 1239 WantAgent = data; 1240 } else { 1241 console.info('----getWantAgent failed!----'); 1242 } 1243 } 1244 //WantAgentInfo对象 1245 var wantAgentInfo = { 1246 wants: [ 1247 { 1248 deviceId: "deviceId", 1249 bundleName: "com.neu.setResultOnAbilityResultTest1", 1250 abilityName: "com.example.test.MainAbility", 1251 action: "action1", 1252 entities: ["entity1"], 1253 type: "MIMETYPE", 1254 uri: "key={true,true,false}", 1255 parameters: 1256 { 1257 mykey0: 2222, 1258 mykey1: [1, 2, 3], 1259 mykey2: "[1, 2, 3]", 1260 mykey3: "ssssssssssssssssssssssssss", 1261 mykey4: [false, true, false], 1262 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 1263 mykey6: true, 1264 } 1265 } 1266 ], 1267 operationType: OperationType.START_ABILITIES, 1268 requestCode: 0, 1269 wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] 1270 } 1271 1272 wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) 1273 1274 //cancel回调 1275 function cancelCallback(err, data) { 1276 console.info("==========================>cancelCallback=======================>"); 1277 } 1278 wantAgent.cancel(WantAgent, cancelCallback) 1279 ``` 1280 1281 1282 1283- 取消WantAgent实例(Promise形式) 1284 1285 WantAgent.cancel(agent: WantAgent): Promise<void> 1286 1287 - 参数描述 1288 1289 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 1290 | ----- | -------- | --------- | ---- | ------------- | 1291 | agent | 只读 | WantAgent | 是 | WantAgent对象 | 1292 - 返回值 1293 1294 Promise<void> 1295 1296 - 示例代码 1297 1298 ```js 1299 import wantAgent from '@ohos.wantAgent'; 1300 import { OperationType, Flags } from '@ohos.wantagent'; 1301 1302 //wantAgent对象 1303 var WantAgent; 1304 1305 //WantAgentInfo对象 1306 var wantAgentInfo = { 1307 wants: [ 1308 { 1309 deviceId: "deviceId", 1310 bundleName: "com.neu.setResultOnAbilityResultTest1", 1311 abilityName: "com.example.test.MainAbility", 1312 action: "action1", 1313 entities: ["entity1"], 1314 type: "MIMETYPE", 1315 uri: "key={true,true,false}", 1316 parameters: 1317 { 1318 mykey0: 2222, 1319 mykey1: [1, 2, 3], 1320 mykey2: "[1, 2, 3]", 1321 mykey3: "ssssssssssssssssssssssssss", 1322 mykey4: [false, true, false], 1323 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 1324 mykey6: true, 1325 } 1326 } 1327 ], 1328 operationType: OperationType.START_ABILITIES, 1329 requestCode: 0, 1330 wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] 1331 } 1332 1333 wantAgent.getWantAgent(wantAgentInfo).then((data) => { 1334 console.info("==========================>getWantAgentCallback=======================>"); 1335 WantAgent = data; 1336 }); 1337 1338 wantAgent.cancel(WantAgent).then((data) => { 1339 console.info("==========================>cancelCallback=======================>"); 1340 }); 1341 ``` 1342 1343 1344 1345 1346##### 主动激发WantAgent实例 1347 1348- 主动激发WantAgent实例(callback形式) 1349 1350 WantAgent.trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback<CompleteData>) 1351 1352 - 参数描述 1353 1354 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 1355 | ----------- | -------- | --------------------------- | ---- | ------------------------------- | 1356 | agent | 只读 | WantAgent | 是 | WantAgent对象 | 1357 | triggerInfo | 只读 | TriggerInfo | 是 | TriggerInfo对象 | 1358 | callback | 只读 | AsyncCallback<CompleteData> | 是 | 主动激发WantAgent实例的回调方法 | 1359 - 返回值 1360 1361 void 1362 1363 - 示例代码 1364 1365 ```js 1366 import wantAgent from '@ohos.wantAgent'; 1367 import { OperationType, Flags } from '@ohos.wantagent'; 1368 1369 //wantAgent对象 1370 var WantAgent; 1371 1372 //getWantAgent回调 1373 function getWantAgentCallback(err, data) { 1374 console.info("==========================>getWantAgentCallback=======================>"); 1375 if (err.code == 0) { 1376 WantAgent = data; 1377 } else { 1378 console.info('----getWantAgent failed!----'); 1379 } 1380 } 1381 //WantAgentInfo对象 1382 var wantAgentInfo = { 1383 wants: [ 1384 { 1385 deviceId: "deviceId", 1386 bundleName: "com.neu.setResultOnAbilityResultTest1", 1387 abilityName: "com.example.test.MainAbility", 1388 action: "action1", 1389 entities: ["entity1"], 1390 type: "MIMETYPE", 1391 uri: "key={true,true,false}", 1392 parameters: 1393 { 1394 mykey0: 2222, 1395 mykey1: [1, 2, 3], 1396 mykey2: "[1, 2, 3]", 1397 mykey3: "ssssssssssssssssssssssssss", 1398 mykey4: [false, true, false], 1399 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 1400 mykey6: true, 1401 } 1402 } 1403 ], 1404 operationType: OperationType.START_ABILITIES, 1405 requestCode: 0, 1406 wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] 1407 } 1408 1409 wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) 1410 1411 //cancel回调 1412 function triggerCallback(err, data) { 1413 console.info("==========================>triggerCallback=======================>"); 1414 } 1415 wantAgent.trigger(WantAgent, triggerCallback) 1416 ``` 1417 1418 1419 1420 1421##### 判断两个WantAgent实例是否相等 1422 1423- 判断两个WantAgent实例是否相等(callback形式) 1424 1425 WantAgent.equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback<boolean>) 1426 1427 - 参数描述 1428 1429 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 1430 | ---------- | -------- | ---------------------- | ---- | --------------------------------------- | 1431 | agent | 只读 | WantAgent | 是 | WantAgent对象 | 1432 | otherAgent | 只读 | WantAgent | 是 | WantAgent对象 | 1433 | callback | 只读 | AsyncCallback<boolean> | 是 | 判断两个WantAgent实例是否相等的回调方法 | 1434 - 返回值 1435 1436 void 1437 1438 - 示例代码 1439 1440 ```js 1441 import wantAgent from '@ohos.wantAgent'; 1442 import { OperationType, Flags } from '@ohos.wantagent'; 1443 1444 //wantAgent对象 1445 var WantAgent1; 1446 var WantAgent2; 1447 1448 //getWantAgent回调 1449 function getWantAgentCallback(err, data) { 1450 console.info("==========================>getWantAgentCallback=======================>"); 1451 if (err.code == 0) { 1452 WantAgent1 = data; 1453 WantAgent2 = data; 1454 } else { 1455 console.info('----getWantAgent failed!----'); 1456 } 1457 } 1458 //WantAgentInfo对象 1459 var wantAgentInfo = { 1460 wants: [ 1461 { 1462 deviceId: "deviceId", 1463 bundleName: "com.neu.setResultOnAbilityResultTest1", 1464 abilityName: "com.example.test.MainAbility", 1465 action: "action1", 1466 entities: ["entity1"], 1467 type: "MIMETYPE", 1468 uri: "key={true,true,false}", 1469 parameters: 1470 { 1471 mykey0: 2222, 1472 mykey1: [1, 2, 3], 1473 mykey2: "[1, 2, 3]", 1474 mykey3: "ssssssssssssssssssssssssss", 1475 mykey4: [false, true, false], 1476 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 1477 mykey6: true, 1478 } 1479 } 1480 ], 1481 operationType: OperationType.START_ABILITIES, 1482 requestCode: 0, 1483 wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] 1484 } 1485 1486 wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) 1487 1488 //cancel回调 1489 function equalCallback(err, data) { 1490 console.info("==========================>equalCallback=======================>"); 1491 } 1492 wantAgent.equal(WantAgent1, WantAgent1, equalCallback) 1493 ``` 1494 1495 1496 1497- 判断两个WantAgent实例是否相等(Promise形式) 1498 1499 WantAgent.equal(agent: WantAgent, otherAgent: WantAgent): Promise<boolean> 1500 1501 - 参数描述 1502 1503 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 1504 | ---------- | -------- | --------- | ---- | ------------- | 1505 | agent | 只读 | WantAgent | 是 | WantAgent对象 | 1506 | otherAgent | 只读 | WantAgent | 是 | WantAgent对象 | 1507 - 返回值 1508 1509 Promise<boolean> 1510 1511 - 示例代码 1512 1513 ```js 1514 import wantAgent from '@ohos.wantAgent'; 1515 import { OperationType, Flags } from '@ohos.wantagent'; 1516 1517 //wantAgent对象 1518 var WantAgent1; 1519 var WantAgent2; 1520 1521 //WantAgentInfo对象 1522 var wantAgentInfo = { 1523 wants: [ 1524 { 1525 deviceId: "deviceId", 1526 bundleName: "com.neu.setResultOnAbilityResultTest1", 1527 abilityName: "com.example.test.MainAbility", 1528 action: "action1", 1529 entities: ["entity1"], 1530 type: "MIMETYPE", 1531 uri: "key={true,true,false}", 1532 parameters: 1533 { 1534 mykey0: 2222, 1535 mykey1: [1, 2, 3], 1536 mykey2: "[1, 2, 3]", 1537 mykey3: "ssssssssssssssssssssssssss", 1538 mykey4: [false, true, false], 1539 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 1540 mykey6: true, 1541 } 1542 } 1543 ], 1544 operationType: OperationType.START_ABILITIES, 1545 requestCode: 0, 1546 wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] 1547 } 1548 1549 wantAgent.getWantAgent(wantAgentInfo).then((data) => { 1550 console.info("==========================>getWantAgentCallback=======================>"); 1551 WantAgent = data; 1552 }); 1553 1554 wantAgent.equal(WantAgent1, WantAgent2).then((data) => { 1555 console.info("==========================>equalCallback=======================>"); 1556 }); 1557 ``` 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584