<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙開發接口Ability框架:【ServiceExtensionContext】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-20 16:26 ? 次閱讀

ServiceExtensionContext

ServiceExtensionContext模塊是ServiceExtension的上下文環境,繼承自ExtensionContext。

ServiceExtensionContext模塊提供ServiceExtension具有的能力和接口,包括啟動、停止、綁定、解綁Ability。

說明:
開發前請熟悉鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
本模塊首批接口從API version 9開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。
本模塊接口僅可在Stage模型下使用。

使用說明

ServiceExtensionContext模塊是ServiceExtension的上下文環境,繼承自ExtensionContext。

屬性

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

名稱參數類型可讀可寫說明
extensionAbilityInfo[ExtensionAbilityInfo]服務擴展信息。

startAbility

startAbility(want: Want, callback: AsyncCallback): void;

啟動Ability。

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

系統API : 此接口為系統接口,三方應用不支持調用。

參數:

參數名類型必填說明
want[Want]Want類型參數,傳入需要啟動的ability的信息,如ability名稱,包名等。
callbackAsyncCallback回調函數,返回接口調用是否成功的結果。

示例:

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;

啟動Ability。通過Promise返回結果。

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

系統API : 此接口為系統接口,三方應用不支持調用。

參數:

參數名類型必填說明
want[Want]Want類型參數,傳入需要啟動的ability的信息,如ability名稱,包名等。
options[StartOptions]啟動Ability所攜帶的參數。

返回值:

類型說明
Promise返回一個Promise,包含接口的結果。

示例:

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

啟動Ability。

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

系統API : 此接口為系統接口,三方應用不支持調用。

參數:

參數名類型必填說明
want[Want]啟動Ability的want信息。
options[StartOptions]啟動Ability所攜帶的參數。
callbackAsyncCallbackcallback形式返回啟動結果。

示例:

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;

根據account啟動Ability(callback形式)。

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

系統API : 此接口為系統接口,三方應用不支持調用。

參數:

參數名類型必填說明
want[Want]啟動Ability的want信息。
accountIdnumber需要啟動的accountId。
callbackAsyncCallback啟動Ability的回調函數。

示例:

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;

根據account啟動Ability(callback形式)。

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

系統API : 此接口為系統接口,三方應用不支持調用。

參數:

參數名類型必填說明
want[Want]啟動Ability的want信息。
accountIdnumber需要啟動的accountId。
options[StartOptions]啟動Ability所攜帶的參數。
callbackAsyncCallback啟動Ability的回調函數。

示例:

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;

根據account啟動Ability(Promise形式)。

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

系統API : 此接口為系統接口,三方應用不支持調用。

參數:

參數名類型必填說明
want[Want]啟動Ability的want信息。
accountIdnumber需要啟動的accountId。
options[StartOptions]啟動Ability所攜帶的參數。

示例:

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自身。

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

系統API : 此接口為系統接口,三方應用不支持調用。

參數:

參數名類型必填說明
callbackAsyncCallback回調函數,返回接口調用是否成功的結果。

示例:

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返回結果。

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

系統API : 此接口為系統接口,三方應用不支持調用。

返回值:

類型說明
Promise返回一個Promise,包含接口的結果。

示例:

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;

將一個Ability與服務類型的Ability綁定。

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

系統API : 此接口為系統接口,三方應用不支持調用。

參數:

參數名類型必填說明
want[Want]Want類型參數,傳入需要啟動的ability的信息,如ability名稱,包名等。
options[ConnectOptions]ConnectOptions類型的回調函數,返回服務連接成功、斷開或連接失敗后的信息。

返回值:

類型說明
number返回一個number,后續根據這個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將當前能力連接到一個能力。

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

系統API : 此接口為系統接口,三方應用不支持調用。

參數:

參數名類型必填說明
want[Want]啟動Ability的want信息。
accountIdnumber需要啟動的accountId。
optionsConnectOptions遠端對象實例。

返回值:

類型說明
number返回Ability連接的結果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;

將一個Ability與綁定的服務類型的Ability解綁。

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

系統API : 此接口為系統接口,三方應用不支持調用。

參數:

參數名類型必填說明
connectionnumber在connectAbility中返回的number。
callbackAsyncCallback回調函數,返回接口調用是否成功的結果。

示例:

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;

將一個Ability與綁定的服務類型的Ability解綁。通過Promise返回結果。

系統能力 :SystemCapability.Ability.AbilityRuntime.Core

系統API : 此接口為系統接口,三方應用不支持調用。

參數:

參數名類型必填說明
connectionnumber在connectAbility中返回的number。

返回值:

類型說明HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
Promise返回一個Promise,包含接口的結果。

搜狗高速瀏覽器截圖20240326151344.png
示例:

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));
    });
  }
}

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    7819

    瀏覽量

    148892
  • 框架
    +關注

    關注

    0

    文章

    341

    瀏覽量

    17107
  • 鴻蒙
    +關注

    關注

    55

    文章

    1854

    瀏覽量

    42176
收藏 人收藏

    評論

    相關推薦

    鴻蒙開發接口Ability框架:【@ohos.application.Ability (Ability)】

    Ability模塊提供對Ability生命周期、上下文環境等調用管理的能力,包括Ability創建、銷毀、轉儲客戶端信息等。
    的頭像 發表于 04-30 17:42 ?1891次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@ohos.application.<b class='flag-5'>Ability</b> (<b class='flag-5'>Ability</b>)】

    鴻蒙開發接口Ability框架:【@ohos.ability.featureAbility (FeatureAbility模塊)】

    FeatureAbility模塊提供帶有UI設計與用戶交互的能力,包括啟動新的ability、獲取dataAbilityHelper、設置此Page Ability、獲取當前Ability對應的窗口,連接服務等。
    的頭像 發表于 05-06 16:31 ?624次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@ohos.<b class='flag-5'>ability</b>.featureAbility (FeatureAbility模塊)】

    鴻蒙開發接口Ability框架:【@ohos.application.missionManager (missionManager)】

    表示Ability對應任務信息的枚舉。
    的頭像 發表于 05-08 09:19 ?647次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@ohos.application.missionManager (missionManager)】

    鴻蒙開發接口Ability框架:【@ohos.ability.particleAbility (particleAbility模塊)】

    particleAbility模塊提供了Service類型Ability的能力,包括啟動、停止指定的particleAbility,獲取dataAbilityHelper,連接、斷開當前Ability與指定ServiceAbility等。
    的頭像 發表于 05-09 10:21 ?434次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@ohos.<b class='flag-5'>ability</b>.particleAbility (particleAbility模塊)】

    鴻蒙開發接口Ability框架:【(uriPermissionManager)】

    本模塊首批接口從API version 9 開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。
    的頭像 發表于 05-10 17:46 ?512次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【(uriPermissionManager)】

    鴻蒙開發接口Ability框架:【 (Context模塊)】

    Context模塊提供了ability或application的上下文的能力,包括允許訪問特定于應用程序的資源、請求和驗證權限等。
    的頭像 發表于 05-13 16:04 ?299次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【 (Context模塊)】

    鴻蒙開發接口Ability框架:【(AbilityContext)】

    AbilityContext是Ability的上下文環境,繼承自Context。
    的頭像 發表于 05-13 09:26 ?521次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【(AbilityContext)】

    鴻蒙開發接口Ability框架:【(AbilityDelegator)】

    AbilityDelegator提供添加用于監視指定能力的生命周期狀態更改的AbilityMonitor對象的能力,包括對AbilityMonitor實例的添加、刪除、等待ability到達
    的頭像 發表于 05-13 17:58 ?617次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【(AbilityDelegator)】

    鴻蒙開發接口Ability框架:【AbilityRunningInfo】

    AbilityRunningInfo模塊提供對Ability運行的相關信息和狀態進行設置和查詢的能力。
    的頭像 發表于 05-14 16:02 ?499次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【AbilityRunningInfo】

    鴻蒙開發接口Ability框架:【AbilityDelegator】

    AbilityDelegator提供添加用于監視指定能力的生命周期狀態更改的AbilityMonitor對象的能力,包括對AbilityMonitor實例的添加、刪除、等待ability到達
    的頭像 發表于 05-16 16:48 ?651次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【AbilityDelegator】

    鴻蒙Ability開發-Stage模型下Ability的創建和使用

    ); hilog.info(ENTRY_ABILITY_DOMAIN, TAG, \'%{public}s\', \'Ability onBackground\'); } } 本文內容是鴻蒙
    發表于 01-08 15:34

    跟阿斌一起學鴻蒙(2): Ability vs App?

    在進一步實踐之前,需要先弄明白一個概念:Ability。不知道你有沒有注意到,使用鴻蒙開發工具DevEco Studio創建項目時,我們選擇創建的是一個個Ability。這是為什么呢?
    發表于 11-30 20:56

    HarmonyOS應用開發-Page Ability啟動Service Ability

    Page Ablity響應交互,從而調用Service Ability鴻蒙開發中最常用的交互方式,在Page Ablity使用startAbility(intent)啟動Service
    發表于 11-03 10:32

    鴻蒙開發接口Ability框架:【ApplicationContext】

    ApplicationContext模塊提供開發者應用級別的的上下文的能力,包括提供注冊及取消注冊應用內組件生命周期的監聽接口。
    的頭像 發表于 05-16 11:51 ?290次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【ApplicationContext】

    鴻蒙開發接口Ability框架:【AbilityRunningInfo】

    AbilityRunningInfo模塊提供對Ability運行的相關信息和狀態進行設置和查詢的能力。
    的頭像 發表于 05-17 17:12 ?144次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【AbilityRunningInfo】
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>