1# Stage模型绑定FA模型ServiceAbility
2
3
4本小节介绍Stage模型的两种应用组件如何绑定FA模型ServiceAbility组件。
5
6
7## UIAbility关联访问ServiceAbility
8
9[UIAbility](../reference/apis-ability-kit/js-apis-app-ability-uiAbility.md)关联访问ServiceAbility和UIAbility关联访问[ServiceExtensionAbility](../reference/apis-ability-kit/js-apis-app-ability-serviceExtensionAbility-sys.md)的方式完全相同。
10
11
12```ts
13import { common, Want } from '@kit.AbilityKit';
14import { hilog } from '@kit.PerformanceAnalysisKit';
15import { promptAction } from '@kit.ArkUI';
16
17const TAG: string = '[Page_StartFAModel]';
18const DOMAIN_NUMBER: number = 0xFF00;
19
20@Entry
21@Component
22struct Page_StartFAModel {
23  private context = getContext(this) as common.UIAbilityContext;
24
25  build() {
26    Column() {
27      // ...
28      List({ initialIndex: 0 }) {
29        // ...
30        ListItem() {
31          Row() {
32            // ...
33          }
34          .onClick(() => {
35            let want: Want = {
36              bundleName: 'com.samples.famodelabilitydevelop',
37              abilityName: 'com.samples.famodelabilitydevelop.ServiceAbility',
38            };
39            let options: common.ConnectOptions = {
40              onConnect: (elementName, proxy) => {
41                hilog.info(DOMAIN_NUMBER, TAG, 'onConnect called.');
42                promptAction.showToast({
43                  message: 'ConnectFAServiceAbility'
44                });
45              },
46              onDisconnect: (elementName) => {
47                hilog.info(DOMAIN_NUMBER, TAG, 'onDisconnect called.');
48              },
49              onFailed: (code) => {
50                hilog.info(DOMAIN_NUMBER, TAG, 'onFailed code is: ' + code);
51              }
52            };
53            let connectionId = this.context.connectServiceExtensionAbility(want, options);
54            hilog.info(DOMAIN_NUMBER, TAG, 'connectionId is ' + JSON.stringify(connectionId));
55          })
56        }
57        // ...
58      }
59      // ...
60    }
61    // ...
62  }
63}
64```
65
66
67## ExtensionAbility关联访问ServiceAbility
68
69下面以[ServiceExtensionAbility](../reference/apis-ability-kit/js-apis-app-ability-serviceExtensionAbility-sys.md)为例来说明[ExtensionAbility](../reference/apis-ability-kit/js-apis-app-ability-extensionAbility.md)关联访问ServiceAbility。ServiceExtensionAbility关联访问ServiceAbility和ServiceExtensionAbility关联访问ServiceExtensionAbility的方式完全相同。
70
71
72```ts
73import { common, Want } from '@kit.AbilityKit';
74import { hilog } from '@kit.PerformanceAnalysisKit';
75import { promptAction } from '@kit.ArkUI';
76
77const TAG: string = '[Page_StartFAModel]';
78const DOMAIN_NUMBER: number = 0xFF00;
79
80@Entry
81@Component
82struct Page_StartFAModel {
83  private context = getContext(this) as common.UIAbilityContext;
84
85  build() {
86    Column() {
87      // ...
88      List({ initialIndex: 0 }) {
89        // ...
90        ListItem() {
91          Row() {
92            // ...
93          }
94          .onClick(() => {
95            let want: Want = {
96              bundleName: 'com.samples.famodelabilitydevelop',
97              abilityName: 'com.samples.famodelabilitydevelop.ServiceAbility',
98            };
99            let options: common.ConnectOptions = {
100              onConnect: (elementName, proxy) => {
101                hilog.info(DOMAIN_NUMBER, TAG, 'onConnect called.');
102                promptAction.showToast({
103                  message: 'ConnectFAServiceAbility'
104                });
105              },
106              onDisconnect: (elementName) => {
107                hilog.info(DOMAIN_NUMBER, TAG, 'onDisconnect called.');
108              },
109              onFailed: (code) => {
110                hilog.info(DOMAIN_NUMBER, TAG, 'onFailed code is: ' + code);
111              }
112            };
113            let connectionId = this.context.connectServiceExtensionAbility(want, options);
114            hilog.info(DOMAIN_NUMBER, TAG, 'connectionId is ' + JSON.stringify(connectionId));
115          })
116        }
117        // ...
118      }
119      // ...
120    }
121    // ...
122  }
123}
124```
125