1/* 2 * Copyright (c) 2021-2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16/** 17 * @file 18 * @kit ArkUI 19 */ 20 21import { AsyncCallback } from './@ohos.base'; 22import Want from './@ohos.app.ability.Want'; 23 24/** 25 * Plugin component template property. 26 * 27 * @interface PluginComponentTemplate 28 * @syscap SystemCapability.ArkUI.ArkUI.Full 29 * @since 8 30 */ 31/** 32 * Plugin component template property. 33 * 34 * @interface PluginComponentTemplate 35 * @syscap SystemCapability.ArkUI.ArkUI.Full 36 * @atomicservice 37 * @since 12 38 */ 39interface PluginComponentTemplate { 40 /** 41 * Defines the source 42 * 43 * @type { string } 44 * @syscap SystemCapability.ArkUI.ArkUI.Full 45 * @since 8 46 */ 47 /** 48 * Defines the source 49 * 50 * @type { string } 51 * @syscap SystemCapability.ArkUI.ArkUI.Full 52 * @atomicservice 53 * @since 12 54 */ 55 source: string; 56 57 /** 58 * Defines the ability 59 * 60 * @type { string } 61 * @syscap SystemCapability.ArkUI.ArkUI.Full 62 * @since 8 63 */ 64 /** 65 * Defines the ability 66 * 67 * @type { string } 68 * @syscap SystemCapability.ArkUI.ArkUI.Full 69 * @atomicservice 70 * @since 12 71 */ 72 ability: string; 73} 74 75/** 76 * Plugin component manager interface. 77 * 78 * @namespace pluginComponentManager 79 * @syscap SystemCapability.ArkUI.ArkUI.Full 80 * @since 8 81 */ 82/** 83 * Plugin component manager interface. 84 * 85 * @namespace pluginComponentManager 86 * @syscap SystemCapability.ArkUI.ArkUI.Full 87 * @atomicservice 88 * @since 12 89 */ 90declare namespace pluginComponentManager { 91 /** 92 * Defines KVObject 93 * 94 * @typedef { object } KVObject 95 * @syscap SystemCapability.ArkUI.ArkUI.Full 96 * @since 8 97 */ 98 /** 99 * Defines KVObject 100 * 101 * @typedef { object } KVObject 102 * @syscap SystemCapability.ArkUI.ArkUI.Full 103 * @atomicservice 104 * @since 12 105 */ 106 type KVObject = { [key: string]: number | string | boolean | [] | KVObject } 107 108 /** 109 * Plugin component push parameters. 110 * 111 * @interface PushParameters 112 * @syscap SystemCapability.ArkUI.ArkUI.Full 113 * @since 8 114 */ 115 /** 116 * Plugin component push parameters. 117 * 118 * @interface PushParameters 119 * @syscap SystemCapability.ArkUI.ArkUI.Full 120 * @atomicservice 121 * @since 12 122 */ 123 interface PushParameters { 124 /** 125 * Defines want. 126 * 127 * @type { Want } 128 * @syscap SystemCapability.ArkUI.ArkUI.Full 129 * @since 8 130 */ 131 /** 132 * Defines want. 133 * 134 * @type { Want } 135 * @syscap SystemCapability.ArkUI.ArkUI.Full 136 * @atomicservice 137 * @since 12 138 */ 139 want: Want; 140 141 /** 142 * Defines name. 143 * 144 * @type { string } 145 * @syscap SystemCapability.ArkUI.ArkUI.Full 146 * @since 8 147 */ 148 /** 149 * Defines name. 150 * 151 * @type { string } 152 * @syscap SystemCapability.ArkUI.ArkUI.Full 153 * @atomicservice 154 * @since 12 155 */ 156 name: string; 157 158 /** 159 * Defines data. 160 * 161 * @type { KVObject } 162 * @syscap SystemCapability.ArkUI.ArkUI.Full 163 * @since 8 164 */ 165 /** 166 * Defines data. 167 * 168 * @type { KVObject } 169 * @syscap SystemCapability.ArkUI.ArkUI.Full 170 * @atomicservice 171 * @since 12 172 */ 173 data: KVObject; 174 175 /** 176 * Defines extraData. 177 * 178 * @type { KVObject } 179 * @syscap SystemCapability.ArkUI.ArkUI.Full 180 * @since 8 181 */ 182 /** 183 * Defines extraData. 184 * 185 * @type { KVObject } 186 * @syscap SystemCapability.ArkUI.ArkUI.Full 187 * @atomicservice 188 * @since 12 189 */ 190 extraData: KVObject; 191 192 /** 193 * Defines jsonPath. 194 * 195 * @type { ?string } 196 * @syscap SystemCapability.ArkUI.ArkUI.Full 197 * @since 8 198 */ 199 /** 200 * Defines jsonPath. 201 * 202 * @type { ?string } 203 * @syscap SystemCapability.ArkUI.ArkUI.Full 204 * @atomicservice 205 * @since 12 206 */ 207 jsonPath?: string; 208 } 209 210 /** 211 * Plugin component push parameters which is used in push function. 212 * 213 * @interface PushParameterForStage 214 * @syscap SystemCapability.ArkUI.ArkUI.Full 215 * @systemapi 216 * @since 9 217 */ 218 interface PushParameterForStage { 219 /** 220 * Defines owner. 221 * 222 * @type { Want } 223 * @syscap SystemCapability.ArkUI.ArkUI.Full 224 * @systemapi 225 * @since 9 226 */ 227 owner: Want; 228 229 /** 230 * Defines target. 231 * 232 * @type { Want } 233 * @syscap SystemCapability.ArkUI.ArkUI.Full 234 * @systemapi 235 * @since 9 236 */ 237 target: Want; 238 239 /** 240 * Defines name. 241 * 242 * @type { string } 243 * @syscap SystemCapability.ArkUI.ArkUI.Full 244 * @systemapi 245 * @since 9 246 */ 247 name: string; 248 249 /** 250 * Defines data. 251 * 252 * @type { KVObject } 253 * @syscap SystemCapability.ArkUI.ArkUI.Full 254 * @systemapi 255 * @since 9 256 */ 257 data: KVObject; 258 259 /** 260 * Defines extraData. 261 * 262 * @type { KVObject } 263 * @syscap SystemCapability.ArkUI.ArkUI.Full 264 * @systemapi 265 * @since 9 266 */ 267 extraData: KVObject; 268 269 /** 270 * Defines jsonPath. 271 * 272 * @type { ?string } 273 * @syscap SystemCapability.ArkUI.ArkUI.Full 274 * @systemapi 275 * @since 9 276 */ 277 jsonPath?: string; 278 } 279 280 /** 281 * Plugin component request parameters. 282 * 283 * @interface RequestParameters 284 * @syscap SystemCapability.ArkUI.ArkUI.Full 285 * @since 8 286 */ 287 /** 288 * Plugin component request parameters. 289 * 290 * @interface RequestParameters 291 * @syscap SystemCapability.ArkUI.ArkUI.Full 292 * @atomicservice 293 * @since 12 294 */ 295 interface RequestParameters { 296 /** 297 * Defines want. 298 * 299 * @type { Want } 300 * @syscap SystemCapability.ArkUI.ArkUI.Full 301 * @since 8 302 */ 303 /** 304 * Defines want. 305 * 306 * @type { Want } 307 * @syscap SystemCapability.ArkUI.ArkUI.Full 308 * @atomicservice 309 * @since 12 310 */ 311 want: Want; 312 313 /** 314 * Defines name. 315 * 316 * @type { string } 317 * @syscap SystemCapability.ArkUI.ArkUI.Full 318 * @since 8 319 */ 320 /** 321 * Defines name. 322 * 323 * @type { string } 324 * @syscap SystemCapability.ArkUI.ArkUI.Full 325 * @atomicservice 326 * @since 12 327 */ 328 name: string; 329 330 /** 331 * Defines data. 332 * 333 * @type { KVObject } 334 * @syscap SystemCapability.ArkUI.ArkUI.Full 335 * @since 8 336 */ 337 /** 338 * Defines data. 339 * 340 * @type { KVObject } 341 * @syscap SystemCapability.ArkUI.ArkUI.Full 342 * @atomicservice 343 * @since 12 344 */ 345 data: KVObject; 346 347 /** 348 * Defines jsonPath. 349 * 350 * @type { ?string } 351 * @syscap SystemCapability.ArkUI.ArkUI.Full 352 * @since 8 353 */ 354 /** 355 * Defines jsonPath. 356 * 357 * @type { ?string } 358 * @syscap SystemCapability.ArkUI.ArkUI.Full 359 * @atomicservice 360 * @since 12 361 */ 362 jsonPath?: string; 363 } 364 365 /** 366 * Plugin component request parameters which is used in request function. 367 * 368 * @interface RequestParameterForStage 369 * @syscap SystemCapability.ArkUI.ArkUI.Full 370 * @systemapi 371 * @since 9 372 */ 373 interface RequestParameterForStage { 374 /** 375 * Defines owner. 376 * 377 * @type { Want } 378 * @syscap SystemCapability.ArkUI.ArkUI.Full 379 * @systemapi 380 * @since 9 381 */ 382 owner: Want; 383 384 /** 385 * Defines target. 386 * 387 * @type { Want } 388 * @syscap SystemCapability.ArkUI.ArkUI.Full 389 * @systemapi 390 * @since 9 391 */ 392 target: Want; 393 /** 394 * Defines name. 395 * 396 * @type { string } 397 * @syscap SystemCapability.ArkUI.ArkUI.Full 398 * @systemapi 399 * @since 9 400 */ 401 name: string; 402 403 /** 404 * Defines data. 405 * 406 * @type { KVObject } 407 * @syscap SystemCapability.ArkUI.ArkUI.Full 408 * @systemapi 409 * @since 9 410 */ 411 data: KVObject; 412 413 /** 414 * Defines jsonPath. 415 * 416 * @type { ?string } 417 * @syscap SystemCapability.ArkUI.ArkUI.Full 418 * @systemapi 419 * @since 9 420 */ 421 jsonPath?: string; 422 } 423 424 /** 425 * Plugin component request callback parameters. 426 * 427 * @interface RequestCallbackParameters 428 * @syscap SystemCapability.ArkUI.ArkUI.Full 429 * @since 8 430 */ 431 /** 432 * Plugin component request callback parameters. 433 * 434 * @interface RequestCallbackParameters 435 * @syscap SystemCapability.ArkUI.ArkUI.Full 436 * @atomicservice 437 * @since 12 438 */ 439 interface RequestCallbackParameters { 440 441 /** 442 * Defines componentTemplate. 443 * 444 * @type { PluginComponentTemplate } 445 * @syscap SystemCapability.ArkUI.ArkUI.Full 446 * @since 8 447 */ 448 /** 449 * Defines componentTemplate. 450 * 451 * @type { PluginComponentTemplate } 452 * @syscap SystemCapability.ArkUI.ArkUI.Full 453 * @atomicservice 454 * @since 12 455 */ 456 componentTemplate: PluginComponentTemplate; 457 458 /** 459 * Defines data. 460 * 461 * @type { KVObject } 462 * @syscap SystemCapability.ArkUI.ArkUI.Full 463 * @since 8 464 */ 465 /** 466 * Defines data. 467 * 468 * @type { KVObject } 469 * @syscap SystemCapability.ArkUI.ArkUI.Full 470 * @atomicservice 471 * @since 12 472 */ 473 data: KVObject; 474 475 /** 476 * Defines extraData. 477 * 478 * @type { KVObject } 479 * @syscap SystemCapability.ArkUI.ArkUI.Full 480 * @since 8 481 */ 482 /** 483 * Defines extraData. 484 * 485 * @type { KVObject } 486 * @syscap SystemCapability.ArkUI.ArkUI.Full 487 * @atomicservice 488 * @since 12 489 */ 490 extraData: KVObject; 491 } 492 493 /** 494 * Plugin component request event result value. 495 * 496 * @interface RequestEventResult 497 * @syscap SystemCapability.ArkUI.ArkUI.Full 498 * @since 8 499 */ 500 /** 501 * Plugin component request event result value. 502 * 503 * @interface RequestEventResult 504 * @syscap SystemCapability.ArkUI.ArkUI.Full 505 * @atomicservice 506 * @since 12 507 */ 508 interface RequestEventResult { 509 /** 510 * Defines template. 511 * 512 * @type { ?string } 513 * @syscap SystemCapability.ArkUI.ArkUI.Full 514 * @since 8 515 */ 516 /** 517 * Defines template. 518 * 519 * @type { ?string } 520 * @syscap SystemCapability.ArkUI.ArkUI.Full 521 * @atomicservice 522 * @since 12 523 */ 524 template?: string; 525 526 /** 527 * Defines data. 528 * 529 * @type { ?KVObject } 530 * @syscap SystemCapability.ArkUI.ArkUI.Full 531 * @since 8 532 */ 533 /** 534 * Defines data. 535 * 536 * @type { ?KVObject } 537 * @syscap SystemCapability.ArkUI.ArkUI.Full 538 * @atomicservice 539 * @since 12 540 */ 541 data?: KVObject; 542 543 /** 544 * Defines extraData. 545 * 546 * @type { ?KVObject } 547 * @syscap SystemCapability.ArkUI.ArkUI.Full 548 * @since 8 549 */ 550 /** 551 * Defines extraData. 552 * 553 * @type { ?KVObject } 554 * @syscap SystemCapability.ArkUI.ArkUI.Full 555 * @atomicservice 556 * @since 12 557 */ 558 extraData?: KVObject; 559 } 560 561 /** 562 * Plugin component push event callback. 563 * 564 * @typedef { function } OnPushEventCallback 565 * @syscap SystemCapability.ArkUI.ArkUI.Full 566 * @since 8 567 */ 568 /** 569 * Plugin component push event callback. 570 * 571 * @typedef { function } OnPushEventCallback 572 * @syscap SystemCapability.ArkUI.ArkUI.Full 573 * @atomicservice 574 * @since 12 575 */ 576 type OnPushEventCallback = (source: Want, template: PluginComponentTemplate, data: KVObject, 577 extraData: KVObject) => void; 578 579 /** 580 * Plugin component request event callback. 581 * 582 * @typedef { function } OnRequestEventCallback 583 * @syscap SystemCapability.ArkUI.ArkUI.Full 584 * @since 8 585 */ 586 /** 587 * Plugin component request event callback. 588 * 589 * @typedef { function } OnRequestEventCallback 590 * @returns { RequestEventResult } Returns the request event result. 591 * @syscap SystemCapability.ArkUI.ArkUI.Full 592 * @atomicservice 593 * @since 12 594 */ 595 type OnRequestEventCallback = (source: Want, name: string, data: KVObject) => RequestEventResult; 596 597 /** 598 * Plugin component push method. 599 * 600 * @param { PushParameters } param 601 * @param { AsyncCallback<void> } callback 602 * @syscap SystemCapability.ArkUI.ArkUI.Full 603 * @since 8 604 */ 605 /** 606 * Plugin component push method. 607 * 608 * @param { PushParameters } param 609 * @param { AsyncCallback<void> } callback 610 * @syscap SystemCapability.ArkUI.ArkUI.Full 611 * @atomicservice 612 * @since 12 613 */ 614 function push(param: PushParameters, callback: AsyncCallback<void>): void; 615 616 /** 617 * Plugin component request method. 618 * 619 * @param { RequestParameters } param 620 * @param { AsyncCallback<RequestCallbackParameters> } callback 621 * @syscap SystemCapability.ArkUI.ArkUI.Full 622 * @since 8 623 */ 624 /** 625 * Plugin component request method. 626 * 627 * @param { RequestParameters } param 628 * @param { AsyncCallback<RequestCallbackParameters> } callback 629 * @syscap SystemCapability.ArkUI.ArkUI.Full 630 * @atomicservice 631 * @since 12 632 */ 633 function request(param: RequestParameters, callback: AsyncCallback<RequestCallbackParameters>): void; 634 635 /** 636 * Plugin component push method used to send the information of the template it provides. 637 * 638 * @param { PushParameterForStage } param - Plugin component push parameters for stage. 639 * @param { AsyncCallback<void> } callback - Plugin component push event callback. 640 * @syscap SystemCapability.ArkUI.ArkUI.Full 641 * @systemapi 642 * @StageModelOnly 643 * @since 9 644 */ 645 function push(param: PushParameterForStage, callback: AsyncCallback<void>): void; 646 647 /** 648 * Plugin component request method used to send a request for the information of the template it wants. 649 * 650 * @param { RequestParameterForStage } param - Plugin component request parameters for stage. 651 * @param { AsyncCallback<RequestCallbackParameters> } callback - Plugin component request event callback. 652 * @syscap SystemCapability.ArkUI.ArkUI.Full 653 * @systemapi 654 * @StageModelOnly 655 * @since 9 656 */ 657 function request(param: RequestParameterForStage, callback: AsyncCallback<RequestCallbackParameters>): void; 658 659 /** 660 * Plugin component event listener. 661 * 662 * @param { string } eventType 663 * @param { OnPushEventCallback | OnRequestEventCallback } callback 664 * @syscap SystemCapability.ArkUI.ArkUI.Full 665 * @since 8 666 */ 667 /** 668 * Plugin component event listener. 669 * 670 * @param { string } eventType 671 * @param { OnPushEventCallback | OnRequestEventCallback } callback 672 * @syscap SystemCapability.ArkUI.ArkUI.Full 673 * @atomicservice 674 * @since 12 675 */ 676 function on(eventType: string, callback: OnPushEventCallback | OnRequestEventCallback): void; 677} 678 679export default pluginComponentManager; 680export type { PluginComponentTemplate };