1# API切换概述 2 3 4FA模型和Stage模型由于线程模型和进程模型的差异,部分接口仅在FA模型下才能使用,针对这部分接口在SDK的接口中有FAModelOnly的标记,用于提醒开发者这部分接口仅能在FA模型下使用。因此在切换到Stage模型时,需要将应用中用到的FAModelOnly接口替换成Stage模型下对应的接口。下面是startAbility的接口切换示例,全量接口列表请查看后续章节: 5 6 7 8startAbility接口由FA模型切换到Stage模型的示例: 9 10- FA模型示例 11 12 ```ts 13 import featureAbility from '@ohos.ability.featureAbility'; 14 import Want from '@ohos.app.ability.Want'; 15 import hilog from '@ohos.hilog'; 16 17 const TAG: string = 'PagePageAbilityFirst'; 18 const domain: number = 0xFF00; 19 20 @Entry 21 @Component 22 struct PagePageAbilityFirst { 23 24 build() { 25 Column() { 26 List({ initialIndex: 0 }) { 27 ListItem() { 28 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 29 //... 30 } 31 .onClick(() => { 32 (async (): Promise<void> => { 33 try { 34 hilog.info(domain, TAG, 'Begin to start ability'); 35 let want: Want = { 36 bundleName: 'com.samples.famodelabilitydevelop', 37 moduleName: 'entry', 38 abilityName: 'com.samples.famodelabilitydevelop.PageAbilitySingleton' 39 }; 40 await featureAbility.startAbility({ want: want }); 41 hilog.info(domain, TAG, `Start ability succeed`); 42 } 43 catch (error) { 44 hilog.error(domain, TAG, 'Start ability failed with ' + error); 45 } 46 })() 47 }) 48 } 49 //... 50 } 51 //... 52 } 53 //... 54 } 55 } 56 57 ``` 58 59- Stage示例示例 60 61 ```ts 62 import { hilog } from '@kit.PerformanceAnalysisKit'; 63 import { Want, common, Caller } from '@kit.AbilityKit'; 64 import { BusinessError } from '@kit.BasicServicesKit'; 65 66 const TAG: string = '[Page_UIAbilityComponentsInteractive]'; 67 const DOMAIN_NUMBER: number = 0xFF00; 68 69 @Entry 70 @Component 71 struct Page_UIAbilityComponentsInteractive { 72 private context = this.getUIContext().getHostContext() as common.UIAbilityContext; 73 caller: Caller | undefined = undefined; 74 build() { 75 Column() { 76 //... 77 List({ initialIndex: 0 }) { 78 ListItem() { 79 Row() { 80 //... 81 } 82 .onClick(() => { 83 // context为Ability对象的成员,在非Ability对象内部调用需要 84 // 将Context对象传递过去 85 let wantInfo: Want = { 86 deviceId: '', // deviceId为空表示本设备 87 bundleName: 'com.samples.stagemodelabilitydevelop', 88 moduleName: 'entry', // moduleName非必选 89 abilityName: 'FuncAbilityA', 90 parameters: { // 自定义信息 91 info: '来自EntryAbility Page_UIAbilityComponentsInteractive页面' 92 }, 93 }; 94 // context为调用方UIAbility的UIAbilityContext 95 this.context.startAbility(wantInfo).then(() => { 96 hilog.info(DOMAIN_NUMBER, TAG, 'startAbility success.'); 97 }).catch((error: BusinessError) => { 98 hilog.error(DOMAIN_NUMBER, TAG, 'startAbility failed.'); 99 }); 100 }) 101 } 102 //... 103 } 104 //... 105 } 106 //... 107 } 108 } 109 ``` 110