1# Connecting to a ServiceExtensionAbility from the FA Model 2 3 4This topic describes how the three application components of the FA model connect to the ServiceExtensionAbility component of the stage model. 5 6 7## PageAbility Accessing a ServiceExtensionAbility 8 9A PageAbility accesses a ServiceExtensionAbility in the same way as it accesses a 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'; 16 17let want: Want = { 18 bundleName: "com.ohos.stage", 19 abilityName: "com.ohos.stage.ServiceExtensionAbility" 20}; 21 22let faConnect: common.ConnectOptions = { 23 onConnect: (elementName, proxy) => { 24 console.info("Faconnection onConnect called."); 25 }, 26 onDisconnect: (elementName) => { 27 console.info("Faconnection onDisconnect called."); 28 }, 29 onFailed: (code) => { 30 console.info("Faconnection onFailed code is: " + code); 31 } 32}; 33let connectionId = featureAbility.connectAbility(want, faConnect); 34``` 35 36 37## ServiceAbility or DataAbility Accessing a ServiceExtensionAbility 38 39A ServiceAbility or DataAbility accesses a ServiceExtensionAbility in the same way as it accesses a ServiceAbility. 40 41 42```ts 43import particleAbility from '@ohos.ability.particleAbility'; 44import common from '@ohos.app.ability.common'; 45import Want from '@ohos.app.ability.Want'; 46 47let want: Want = { 48 bundleName: "com.ohos.stage", 49 abilityName: "com.ohos.stage.ServiceExtensionAbility" 50}; 51 52let faConnect: common.ConnectOptions = { 53 onConnect: (elementName, proxy) => { 54 console.info("Faconnection onConnect called."); 55 }, 56 onDisconnect: (elementName) => { 57 console.info("Faconnection onDisconnect called."); 58 }, 59 onFailed: (code) => { 60 console.info("Faconnection onFailed code is: " + code); 61 } 62}; 63let connectionId = particleAbility.connectAbility(want, faConnect); 64``` 65