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