ServiceExtensionContext
ServiceExtensionContext模塊是ServiceExtension的上下文環(huán)境,繼承自ExtensionContext。
ServiceExtensionContext模塊提供ServiceExtension具有的能力和接口,包括啟動(dòng)、停止、綁定、解綁Ability。
說明:
開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
本模塊接口僅可在Stage模型下使用。
使用說明
ServiceExtensionContext模塊是ServiceExtension的上下文環(huán)境,繼承自ExtensionContext。
屬性
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
名稱 | 參數(shù)類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
extensionAbilityInfo | [ExtensionAbilityInfo] | 是 | 否 | 服務(wù)擴(kuò)展信息。 |
startAbility
startAbility(want: Want, callback: AsyncCallback): void;
啟動(dòng)Ability。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
系統(tǒng)API : 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
want | [Want] | 是 | Want類型參數(shù),傳入需要啟動(dòng)的ability的信息,如ability名稱,包名等。 |
callback | AsyncCallback | 否 | 回調(diào)函數(shù),返回接口調(diào)用是否成功的結(jié)果。 |
示例:
import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
class MainAbility extends ExtensionContext {
onWindowStageCreate(windowStage) {
let want = {
"bundleName": "com.example.myapp",
"abilityName": "MyAbility"};
this.context.startAbility(want, (err) = > {
console.log('startAbility result:' + JSON.stringify(err));
});
}
}
startAbility
startAbility(want: Want, options?: StartOptions): Promise;
啟動(dòng)Ability。通過Promise返回結(jié)果。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
系統(tǒng)API : 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
want | [Want] | 是 | Want類型參數(shù),傳入需要啟動(dòng)的ability的信息,如ability名稱,包名等。 |
options | [StartOptions] | 是 | 啟動(dòng)Ability所攜帶的參數(shù)。 |
返回值:
類型 | 說明 |
---|---|
Promise | 返回一個(gè)Promise,包含接口的結(jié)果。 |
示例:
import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
class MainAbility extends ExtensionContext {
onWindowStageCreate(windowStage) {
let want = {
"bundleName": "com.example.myapp",
"abilityName": "MyAbility"
};
this.context.startAbility(want).then((data) = > {
console.log('success:' + JSON.stringify(data));
}).catch((error) = > {
console.log('failed:' + JSON.stringify(error));
});
}
}
startAbility
startAbility(want: Want, options: StartOptions, callback: AsyncCallback): void
啟動(dòng)Ability。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
系統(tǒng)API : 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
want | [Want] | 是 | 啟動(dòng)Ability的want信息。 |
options | [StartOptions] | 是 | 啟動(dòng)Ability所攜帶的參數(shù)。 |
callback | AsyncCallback | 是 | callback形式返回啟動(dòng)結(jié)果。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var options = {
windowMode: 0,
};
this.context.startAbility(want, options, (error) = > {
console.log("error.code = " + error.code)
})
ServiceExtensionContext.startAbilityWithAccount
startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback): void;
根據(jù)account啟動(dòng)Ability(callback形式)。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
系統(tǒng)API : 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
want | [Want] | 是 | 啟動(dòng)Ability的want信息。 |
accountId | number | 是 | 需要啟動(dòng)的accountId。 |
callback | AsyncCallback | 是 | 啟動(dòng)Ability的回調(diào)函數(shù)。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var accountId = 100;
this.context.startAbilityWithAccount(want, accountId, (err) = > {
console.log('---------- startAbilityWithAccount fail, err: -----------', err);
});
ServiceExtensionContext.startAbilityWithAccount
startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback): void;
根據(jù)account啟動(dòng)Ability(callback形式)。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
系統(tǒng)API : 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
want | [Want] | 是 | 啟動(dòng)Ability的want信息。 |
accountId | number | 是 | 需要啟動(dòng)的accountId。 |
options | [StartOptions] | 否 | 啟動(dòng)Ability所攜帶的參數(shù)。 |
callback | AsyncCallback | 是 | 啟動(dòng)Ability的回調(diào)函數(shù)。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var accountId = 100;
var options = {
windowMode: 0,
};
this.context.startAbilityWithAccount(want, accountId, options, (err) = > {
console.log('---------- startAbilityWithAccount fail, err: -----------', err);
});
ServiceExtensionContext.startAbilityWithAccount
startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise;
根據(jù)account啟動(dòng)Ability(Promise形式)。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
系統(tǒng)API : 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
want | [Want] | 是 | 啟動(dòng)Ability的want信息。 |
accountId | number | 是 | 需要啟動(dòng)的accountId。 |
options | [StartOptions] | 否 | 啟動(dòng)Ability所攜帶的參數(shù)。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var accountId = 100;
var options = {
windowMode: 0,
};
this.context.startAbilityWithAccount(want, accountId, options)
.then((data) = > {
console.log('---------- startAbilityWithAccount success, data: -----------', data);
})
.catch((err) = > {
console.log('---------- startAbilityWithAccount fail, err: -----------', err);
})
ServiceExtensionContext.terminateSelf
terminateSelf(callback: AsyncCallback): void;
停止Ability自身。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
系統(tǒng)API : 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 否 | 回調(diào)函數(shù),返回接口調(diào)用是否成功的結(jié)果。 |
示例:
import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
class MainAbility extends ExtensionContext {
onWindowStageCreate(windowStage) {
this.context.terminateSelf((err) = > {
console.log('terminateSelf result:' + JSON.stringify(err));
});
}
}
ServiceExtensionContext.terminateSelf
terminateSelf(): Promise;
停止自身。通過Promise返回結(jié)果。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
系統(tǒng)API : 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
返回值:
類型 | 說明 |
---|---|
Promise | 返回一個(gè)Promise,包含接口的結(jié)果。 |
示例:
import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
class MainAbility extends ExtensionContext {
onWindowStageCreate(windowStage) {
this.context.terminateSelf().then((data) = > {
console.log('success:' + JSON.stringify(data));
}).catch((error) = > {
console.log('failed:' + JSON.stringify(error));
});
}
}
ServiceExtensionContext.connectAbility
connectAbility(want: Want, options: ConnectOptions): number;
將一個(gè)Ability與服務(wù)類型的Ability綁定。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
系統(tǒng)API : 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
want | [Want] | 是 | Want類型參數(shù),傳入需要啟動(dòng)的ability的信息,如ability名稱,包名等。 |
options | [ConnectOptions] | 是 | ConnectOptions類型的回調(diào)函數(shù),返回服務(wù)連接成功、斷開或連接失敗后的信息。 |
返回值:
類型 | 說明 |
---|---|
number | 返回一個(gè)number,后續(xù)根據(jù)這個(gè)number去斷開連接。 |
示例:
let want = {
"bundleName": "com.example.myapp",
"abilityName": "MyAbility"
};
let options = {
onConnect: function(elementName, proxy) {},
onDisConnect: function(elementName) {},
onFailed: function(code) {}
}
let connection = this.context.connectAbility(want,options);
ServiceExtensionContext.connectAbilityWithAccount
connectAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number;
使用AbilityInfo.AbilityType.SERVICE模板和account將當(dāng)前能力連接到一個(gè)能力。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
系統(tǒng)API : 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
want | [Want] | 是 | 啟動(dòng)Ability的want信息。 |
accountId | number | 是 | 需要啟動(dòng)的accountId。 |
options | ConnectOptions | 否 | 遠(yuǎn)端對(duì)象實(shí)例。 |
返回值:
類型 | 說明 |
---|---|
number | 返回Ability連接的結(jié)果code。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var accountId = 100;
var options = {
onConnect(elementName, remote) { console.log('----------- onConnect -----------') },
onDisconnect(elementName) { console.log('----------- onDisconnect -----------') },
onFailed(code) { console.log('----------- onFailed -----------') }
}
const result = this.context.connectAbilityWithAccount(want, accountId, options);
console.log('----------- connectAbilityResult: ------------', result);
ServiceExtensionContext.disconnectAbility
disconnectAbility(connection: number, callback:AsyncCallback): void;
將一個(gè)Ability與綁定的服務(wù)類型的Ability解綁。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
系統(tǒng)API : 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
connection | number | 是 | 在connectAbility中返回的number。 |
callback | AsyncCallback | 否 | 回調(diào)函數(shù),返回接口調(diào)用是否成功的結(jié)果。 |
示例:
import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
class MainAbility extends ExtensionContext {
onWindowStageCreate(windowStage) {
let connection=1
this.context.disconnectAbility(connection, (err) = > {
// connection為connectAbility中的返回值
console.log('terminateSelf result:' + JSON.stringify(err));
});
}
}
ServiceExtensionContext.disconnectAbility
disconnectAbility(connection: number): Promise;
將一個(gè)Ability與綁定的服務(wù)類型的Ability解綁。通過Promise返回結(jié)果。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.Core
系統(tǒng)API : 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
connection | number | 是 | 在connectAbility中返回的number。 |
返回值:
類型 | 說明HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
---|---|
Promise | 返回一個(gè)Promise,包含接口的結(jié)果。 |
示例:
import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
class MainAbility extends ExtensionContext {
onWindowStageCreate(windowStage) {
let connection=1
this.context.disconnectAbility(connection).then((data) = > { // connection為connectAbility中的返回值
console.log('success:' + JSON.stringify(data));
}).catch((error) = > {
console.log('failed:' + JSON.stringify(error));
});
}
}
審核編輯 黃宇
-
接口
+關(guān)注
關(guān)注
33文章
8598瀏覽量
151163 -
框架
+關(guān)注
關(guān)注
0文章
403瀏覽量
17489 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2352瀏覽量
42859
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論