今天學習一下怎麼實現啓動一個Ability文檔講解,主要分爲“參考資料”“api講解”,“運行效果”三個部分講解,
1.參考資料
參考資料啓動一個Ability
2.Api講解
startAbility
參數
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
parameter | StartAbilityParameter | 是 | 啓動參數。 |
返回值
類型 | 說明 |
---|---|
Promise | Promise形式返回啓動結果。錯誤碼參考 StartAbilityCode |
示例
featureAbility.startAbilityForResult
startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback): void
以異步方法啓動Ability並在結束的時候返回執行結果,使用callback形式返回結果。
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
parameter | StartAbilityParameter | 是 | 啓動參數。 |
callback | AsyncCallback | 是 | callback形式返回結果 |
示例
補充說明
StartAbilityParameter
啓動Ability所需參數。
名稱 | 參數類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
want | Want | 是 | 是 | 啓動Ability的want信息。 |
abilityStartSetting | {[key: string]: any} | 是 | 是 | 表示能力的特殊屬性,當開發者啓動能力時,該屬性可以作爲調用中的輸入參數傳遞。 |
taskSyncAnimationOptions | TaskSyncAnimationOptions | 是 | 是 | 啓動Ability時需要進行動畫控制的特殊屬性,當開發者希望控制啓動Ability的動畫時,請傳入該參數,需要權限ohos.permission.CONTROL_TASK_SYNC_ANIMATOR。 |
Want
啓動信息。
名稱 | 參數類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
deviceId | string | 是 | 是 | 表示運行指定Ability的設備ID。 |
bundleName | string | 是 | 是 | 表示包描述。如果在Want中同時指定了BundleName和AbilityName,則Want可以直接匹配到指定的Ability。 |
abilityName | string | 是 | 是 | 表示待啓動的Ability名稱。如果在Want中同時指定了BundleName和AbilityName,則Want可以直接匹配到指定的Ability。 |
uri | string | 是 | 是 | 表示Uri描述。如果在Want中指定了Uri,則Want將匹配指定的Uri信息,包括scheme, schemeSpecificPart, authority和path信息。 |
type | string | 是 | 是 | 表示MIME type類型描述,比如:“text/plain” 、 "image/*"等。 |
action | string | 是 | 是 | 表示action選項描述。具體參考:Action使用時通過wantConstant.Action獲取,示例:wantConstant.Action.ACTION_HOME。 |
entities | Array | 是 | 是 | 表示entities相關描述。具體參考:Entity使用時通過wantConstant.Entity獲取,示例:wantConstant.Entity.ENTITY_DEFAULT。 |
flags | number | 是 | 是 | 表示處理Want的方式。默認傳數字,具體參考:Flags使用時通過wantConstant.Flags獲取,示例:wantConstant.Flags.FLAG_INSTALL_ON_DEMAND。 |
parameters | {[key: string]: any} | 是 | 是 | 表示WantParams描述。 |
3.運行效果
3.1準備階段
在新建OnceAbility和TwoAbility兩個Ability界面,如下圖示所示,包名爲“com.harmony.alliance.myapplication”
config.json文件
2.在Index.ets寫兩個按鈕“startAbility啓動OnceAbility並傳參”和“startAbilityForResult跳轉TwoAbility”,代碼如下
效果如圖所示
3.2實現“startAbility啓動OnceAbility並傳參”
ets 實現點擊按鈕功能,代碼如下
bundleName:就是config.json的bundleName,
abilityName就是ability的名稱,
parameters:作爲傳遞的參數
在OnceAbilitySlice使用如下代碼進行接收
OnceAbilitySlice的xml文件
效果如下
onceAbilitySlice代碼如下
3.3實現“startAbility啓動OnceAbility並傳參”
ets實現“startAbilityForResult跳轉TwoAbility”ets代碼如下
twoAbilitySlice的xml代碼如下
效果圖如下
TwoabilitySlice的代碼如下
ets全部代碼如下
運行效果如下