1# FA模型绑定Stage模型ServiceExtensionAbility 2 3 4本文介绍FA模型的三种应用组件如何绑定Stage模型的ServiceExtensionAbility组件。 5 6 7## PageAbility关联访问ServiceExtensionAbility 8 9PageAbility关联访问ServiceExtensionAbility和PageAbility关联访问ServiceAbility的方式完全相同。 10 11 12```ts 13import featureAbility from '@ohos.ability.featureAbility'; 14import common from '@ohos.app.ability.common'; 15import Want from '@ohos.app.ability.Want'; 16import { BusinessError } from '@ohos.base'; 17import hilog from '@ohos.hilog'; 18 19const TAG: string = 'PageInterflowFaAndStage'; 20const domain: number = 0xFF00; 21 22@Entry 23@Component 24struct PageInterflowFaAndStage { 25 build() { 26 Column() { 27 // ... 28 List({ initialIndex: 0 }) { 29 ListItem() { 30 Row() { 31 // ... 32 } 33 .onClick(() => { 34 let want: Want = { 35 bundleName: 'ohos.samples.etsclock', 36 abilityName: 'MainAbility' 37 }; 38 featureAbility.startAbility({ want }).then((code) => { 39 hilog.info(domain, TAG, 'Ability verify code: ' + JSON.stringify(code)); 40 }).catch((error: BusinessError) => { 41 hilog.error(domain, TAG, 'Ability failed: ' + JSON.stringify(error)); 42 }); 43 let serviceWant: Want = { 44 bundleName: 'com.samples.stagemodelabilityinteraction', 45 abilityName: 'ServiceExtAbility' 46 }; 47 let faConnect: common.ConnectOptions = { 48 onConnect: (elementName, proxy) => { 49 hilog.info(domain, TAG, "FaConnection onConnect called."); 50 }, 51 onDisconnect: (elementName) => { 52 hilog.info(domain, TAG, "FaConnection onDisconnect called."); 53 }, 54 onFailed: (code) => { 55 hilog.info(domain, TAG, "FaConnection onFailed code is: " + code); 56 } 57 }; 58 let connectionId = featureAbility.connectAbility(serviceWant, faConnect); 59 }) 60 } 61 // ... 62 } 63 // ... 64 } 65 // ... 66 } 67} 68``` 69 70 71## ServiceAbility/DataAbility关联访问ServiceExtensionAbility 72 73ServiceAbility/DataAbility关联访问ServiceExtensionAbility和ServiceAbility/DataAbility关联访问ServiceAbility的方式完全相同。 74 75 76```ts 77import type common from '@ohos.app.ability.common'; 78import particleAbility from '@ohos.ability.particleAbility'; 79import type Want from '@ohos.app.ability.Want'; 80import type { BusinessError } from '@ohos.base'; 81import hilog from '@ohos.hilog'; 82 83const TAG: string = '[Sample_FAModelAbilityDevelop]'; 84const domain: number = 0xFF00; 85 86class ServiceAbilityStartUiAbility { 87 onStart(): void { 88 // 启动UIAbility 89 let want: Want = { 90 bundleName: 'ohos.samples.etsclock', 91 abilityName: 'MainAbility' 92 }; 93 particleAbility.startAbility({ want }).then(() => { 94 hilog.info(domain, TAG, 'ServiceAbilityStartUIAbility Start Ability successfully.'); 95 }).catch((error: BusinessError) => { 96 hilog.info(domain, TAG, 'ServiceAbilityStartUIAbility Ability failed: ' + JSON.stringify(error)); 97 }); 98 99 // 访问ServiceExtensionAbility 100 let serviceWant: Want = { 101 bundleName: 'com.samples.stagemodelabilityinteraction', 102 abilityName: 'ServiceExtAbility' 103 }; 104 let faConnect: common.ConnectOptions = { 105 onConnect: (elementName, proxy) => { 106 hilog.info(domain, TAG, 'FaConnection onConnect called.'); 107 }, 108 onDisconnect: (elementName) => { 109 hilog.info(domain, TAG, 'FaConnection onDisconnect called.'); 110 }, 111 onFailed: (code) => { 112 hilog.info(domain, TAG, 'FaConnection onFailed code is: ' + code); 113 } 114 }; 115 let connectionId = particleAbility.connectAbility(serviceWant, faConnect); 116 hilog.info(domain, TAG, 'ServiceAbilityStartUIAbility ServiceAbility onStart'); 117 } 118}; 119 120export default new ServiceAbilityStartUiAbility(); 121``` 122