harmony(鸿蒙)ServiceExtensionContext

2022-08-09 浏览 (791)

ServiceExtensionContext

The ServiceExtensionContext module, inherited from ExtensionContext, provides context for Service Extension abilities.

You can use the APIs of this module to start, terminate, connect, and disconnect abilities.

NOTE

  • The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
  • The APIs of this module can be used only in the stage model.

Usage

Before using the ServiceExtensionContext module, you must define a child class that inherits from ServiceExtensionAbility.

  import ServiceExtensionAbility from '@ohos.app.ability.ServiceExtensionAbility';

  let context = undefined;
  class MainAbility extends ServiceExtensionAbility {
    onCreate() {
      context = this.context;
    }
  }

ServiceExtensionContext.startAbility

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

Starts an ability. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability, such as the ability name and bundle name.
callbackAsyncCallback<void>YesCallback used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  bundleName: "com.example.myapp",
  abilityName: "MyAbility"
};

try {
  this.context.startAbility(want, (error) => {
    if (error.code) {
      // Process service logic errors.
      console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
      return;
    }
    // Carry out normal service processing.
    console.log('startAbility succeed');
  });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.startAbility

startAbility(want: Want, options?: StartOptions): Promise<void>;

Starts an ability. This API uses a promise to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability, such as the ability name and bundle name.
optionsStartOptionsNoParameters used for starting the ability.

Return value

TypeDescription
Promise<void>Promise used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  bundleName: "com.example.myapp",
  abilityName: "MyAbility"
};
var options = {
	windowMode: 0,
};

try {
  this.context.startAbility(want, options)
    .then((data) => {
      // Carry out normal service processing.
      console.log('startAbility succeed');
    })
    .catch((error) => {
      // Process service logic errors.
      console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
    });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.startAbility

startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void>): void

Starts an ability with the start options specified. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.
optionsStartOptionsYesParameters used for starting the ability.
callbackAsyncCallback<void>YesCallback used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  deviceId: "",
  bundleName: "com.extreme.test",
  abilityName: "MainAbility"
};
var options = {
  windowMode: 0
};

try {
  this.context.startAbility(want, options, (error) => {
    if (error.code) {
      // Process service logic errors.
      console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
      return;
    }
    // Carry out normal service processing.
    console.log('startAbility succeed');
  });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.startAbilityWithAccount

startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback<void>): void;

Starts an ability with the account ID specified. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.
accountIdnumberYesID of a system account. For details, see getCreatedOsAccountsCount.
callbackAsyncCallback<void>YesCallback used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  deviceId: "",
  bundleName: "com.extreme.test",
  abilityName: "MainAbility"
};
var accountId = 100;

try {
  this.context.startAbilityWithAccount(want, accountId, (error) => {
    if (error.code) {
      // Process service logic errors.
      console.log('startAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
      return;
    }
    // Carry out normal service processing.
    console.log('startAbilityWithAccount succeed');
  });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.startAbilityWithAccount

startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback<void>): void;

Starts an ability with the account ID and start options specified. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.
accountIdnumberYesID of a system account. For details, see getCreatedOsAccountsCount.
optionsStartOptionsYesParameters used for starting the ability.
callbackAsyncCallback<void>YesCallback used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  deviceId: "",
  bundleName: "com.extreme.test",
  abilityName: "MainAbility"
};
var accountId = 100;
var options = {
  windowMode: 0
};

try {
  this.context.startAbilityWithAccount(want, accountId, options, (error) => {
    if (error.code) {
      // Process service logic errors.
      console.log('startAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
      return;
    }
    // Carry out normal service processing.
    console.log('startAbilityWithAccount succeed');
  });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.startAbilityWithAccount

startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise<void>;

Starts an ability with the account ID specified. This API uses a promise to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.
accountIdnumberYesID of a system account. For details, see getCreatedOsAccountsCount.
optionsStartOptionsNoParameters used for starting the ability.

Return value

TypeDescription
Promise<void>Promise used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  deviceId: "",
  bundleName: "com.extreme.test",
  abilityName: "MainAbility"
};
var accountId = 100;
var options = {
  windowMode: 0
};

try {
  this.context.startAbilityWithAccount(want, accountId, options)
    .then((data) => {
      // Carry out normal service processing.
      console.log('startAbilityWithAccount succeed');
    })
    .catch((error) => {
      // Process service logic errors.
      console.log('startAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
    });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.startServiceExtensionAbility

startServiceExtensionAbility(want: Want, callback: AsyncCallback<void>): void;

Starts a new Service Extension ability. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.
callbackAsyncCallback<void>YesCallback used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  deviceId: "",
  bundleName: "com.extreme.test",
  abilityName: "MainAbility"
};

try {
  this.context.startServiceExtensionAbility(want, (error) => {
    if (error.code) {
      // Process service logic errors.
      console.log('startServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
      return;
    }
    // Carry out normal service processing.
    console.log('startServiceExtensionAbility succeed');
  });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.startServiceExtensionAbility

startServiceExtensionAbility(want: Want): Promise<void>;

Starts a new Service Extension ability. This API uses a promise to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.

Return value

TypeDescription
Promise<void>Promise used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  deviceId: "",
  bundleName: "com.extreme.test",
  abilityName: "MainAbility"
};

try {
  this.context.startServiceExtensionAbility(want)
    .then((data) => {
      // Carry out normal service processing.
      console.log('startServiceExtensionAbility succeed');
    })
    .catch((error) => {
      // Process service logic errors.
      console.log('startServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
    });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.startServiceExtensionAbilityWithAccount

startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback<void>): void;

Starts a new Service Extension ability with the account ID specified. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.
accountIdnumberYesID of a system account. For details, see getCreatedOsAccountsCount.
callbackAsyncCallback<void>YesCallback used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  deviceId: "",
  bundleName: "com.extreme.test",
  abilityName: "MainAbility"
};
var accountId = 100;

try {
  this.context.startServiceExtensionAbilityWithAccount(want, accountId, (error) => {
    if (error.code) {
      // Process service logic errors.
      console.log('startServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
      return;
    }
    // Carry out normal service processing.
    console.log('startServiceExtensionAbilityWithAccount succeed');
  });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.startServiceExtensionAbilityWithAccount

startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise<void>;

Starts a new Service Extension ability with the account ID specified. This API uses a promise to return the result.

Required permissions: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.
accountIdnumberYesID of a system account. For details, see getCreatedOsAccountsCount.

Return value

TypeDescription
Promise<void>Promise used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  deviceId: "",
  bundleName: "com.extreme.test",
  abilityName: "MainAbility"
};
var accountId = 100;

try {
  this.context.startServiceExtensionAbilityWithAccount(want, accountId)
    .then((data) => {
      // Carry out normal service processing.
      console.log('startServiceExtensionAbilityWithAccount succeed');
    })
    .catch((error) => {
      // Process service logic errors.
      console.log('startServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
    });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.stopServiceExtensionAbility

stopServiceExtensionAbility(want: Want, callback: AsyncCallback<void>): void;

Stops a Service Extension ability in the same application. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.
callbackAsyncCallback<void>YesCallback used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  deviceId: "",
  bundleName: "com.extreme.test",
  abilityName: "MainAbility"
};

try {
  this.context.stopServiceExtensionAbility(want, (error) => {
    if (error.code) {
      // Process service logic errors.
      console.log('stopServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
      return;
    }
    // Carry out normal service processing.
    console.log('stopServiceExtensionAbility succeed');
  });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.stopServiceExtensionAbility

stopServiceExtensionAbility(want: Want): Promise<void>;

Stops a Service Extension ability in the same application. This API uses a promise to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.

Return value

TypeDescription
Promise<void>Promise used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  deviceId: "",
  bundleName: "com.extreme.test",
  abilityName: "MainAbility"
};

try {
  this.context.stopServiceExtensionAbility(want)
    .then((data) => {
      // Carry out normal service processing.
      console.log('stopServiceExtensionAbility succeed');
    })
    .catch((error) => {
      // Process service logic errors.
      console.log('stopServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
    });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.stopServiceExtensionAbilityWithAccount

stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback<void>): void;

Stops a Service Extension ability in the same application with the account ID specified. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.
accountIdnumberYesID of a system account. For details, see getCreatedOsAccountsCount.
callbackAsyncCallback<void>YesCallback used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  deviceId: "",
  bundleName: "com.extreme.test",
  abilityName: "MainAbility"
};
var accountId = 100;

try {
  this.context.stopServiceExtensionAbilityWithAccount(want, accountId, (error) => {
    if (error.code) {
      // Process service logic errors.
      console.log('stopServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
      return;
    }
    // Carry out normal service processing.
    console.log('stopServiceExtensionAbilityWithAccount succeed');
  });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.stopServiceExtensionAbilityWithAccount

stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise<void>;

Stops a Service Extension ability in the same application with the account ID specified. This API uses a promise to return the result.

Required permissions: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.
accountIdnumberYesID of a system account. For details, see getCreatedOsAccountsCount.

Return value

TypeDescription
Promise<void>Promise used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  deviceId: "",
  bundleName: "com.extreme.test",
  abilityName: "MainAbility"
};
var accountId = 100;

try {
  this.context.stopServiceExtensionAbilityWithAccount(want, accountId)
    .then((data) => {
      // Carry out normal service processing.
      console.log('stopServiceExtensionAbilityWithAccount succeed');
    })
    .catch((error) => {
      // Process service logic errors.
      console.log('stopServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
    });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.terminateSelf

terminateSelf(callback: AsyncCallback<void>): void;

Terminates this ability. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<void>YesCallback used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

this.context.terminateSelf((error) => {
  if (error.code) {
    // Process service logic errors.
    console.log('terminateSelf failed, error.code: ' + JSON.stringify(error.code) +
      ' error.message: ' + JSON.stringify(error.message));
    return;
  }
  // Carry out normal service processing.
  console.log('terminateSelf succeed');
});

ServiceExtensionContext.terminateSelf

terminateSelf(): Promise<void>;

Terminates this ability. This API uses a promise to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Return value

TypeDescription
Promise<void>Promise used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

this.context.terminateSelf().then((data) => {
  // Carry out normal service processing.
  console.log('terminateSelf succeed');
}).catch((error) => {
  // Process service logic errors.
  console.log('terminateSelf failed, error.code: ' + JSON.stringify(error.code) +
    ' error.message: ' + JSON.stringify(error.message));
});

ServiceExtensionContext.connectServiceExtensionAbility

connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;

Connects this ability to a Service ability.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability, such as the ability name and bundle name.
optionsConnectOptionsYesCallback used to return the information indicating that the connection is successful, interrupted, or failed.

Return value

TypeDescription
numberA number, based on which the connection will be interrupted.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

var want = {
  bundleName: "com.example.myapp",
  abilityName: "MyAbility"
};
var options = {
  onConnect(elementName, remote) { console.log('----------- onConnect -----------') },
  onDisconnect(elementName) { console.log('----------- onDisconnect -----------') },
  onFailed(code) { console.log('----------- onFailed -----------') }
}

var connection = null;
try {
  connection = this.context.connectServiceExtensionAbility(want, options);
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.connectServiceExtensionAbilityWithAccount

connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number;

Uses the AbilityInfo.AbilityType.SERVICE template and account ID to connect this ability to another ability.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesWant information about the target ability.
accountIdnumberYesID of a system account. For details, see getCreatedOsAccountsCount.
optionsConnectOptionsYesRemote object instance.

Return value

TypeDescription
numberResult code of the ability connection.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

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

var connection = null;
try {
  connection = this.context.connectServiceExtensionAbilityWithAccount(want, accountId, options);
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.disconnectServiceExtensionAbility

disconnectServiceExtensionAbility(connection: number, callback:AsyncCallback<void>): void;

Disconnects this ability from the Service ability. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
connectionnumberYesNumber returned after connectAbility is called.
callbackAsyncCallback<void>YesCallback used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

// connection is the return value of connectServiceExtensionAbility.
var connection = 1;

try {
  this.context.disconnectServiceExtensionAbility(connection, (error) => {
    if (error.code) {
      // Process service logic errors.
      console.log('disconnectServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
      return;
    }
    // Carry out normal service processing.
    console.log('disconnectServiceExtensionAbility succeed');
  });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.disconnectServiceExtensionAbility

disconnectServiceExtensionAbility(connection: number): Promise<void>;

Disconnects this ability from the Service ability. This API uses a promise to return the result.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
connectionnumberYesNumber returned after connectAbility is called.

Return value

TypeDescription
Promise<void>Promise used to return the result.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

// connection is the return value of connectAbility.
var connection = 1;

try {
  this.context.disconnectServiceExtensionAbility(connection)
    .then((data) => {
      // Carry out normal service processing.
      console.log('disconnectServiceExtensionAbility succeed');
    })
    .catch((error) => {
      // Process service logic errors.
      console.log('disconnectServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
    });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

ServiceExtensionContext.startAbilityByCall

startAbilityByCall(want: Want): Promise<Caller>;

Starts an ability in the foreground or background and obtains the caller object for communicating with the ability.

System capability: SystemCapability.Ability.AbilityRuntime.Core

System API: This is a system API and cannot be called by third-party applications.

Parameters

NameTypeMandatoryDescription
wantWantYesInformation about the ability to start, including abilityName, moduleName, bundleName, deviceId (optional), and parameters (optional). If deviceId is left blank or null, the local ability is started. If parameters is left blank or null, the ability is started in the background.

Return value

TypeDescription
Promise<Caller>Promise used to return the caller object to communicate with.

Error codes

IDError Message
401Invalid input parameter.
Other IDsSee Ability Error Codes.

Example

Start an ability in the background.

var caller = undefined;

// Start an ability in the background by not passing parameters.
var wantBackground = {
    bundleName: "com.example.myservice",
    moduleName: "entry",
    abilityName: "MainAbility",
    deviceId: ""
};

try {
  this.context.startAbilityByCall(wantBackground)
    .then((obj) => {
      // Carry out normal service processing.
      caller = obj;
      console.log('startAbilityByCall succeed');
    }).catch((error) => {
      // Process service logic errors.
      console.log('startAbilityByCall failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
    });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

Start an ability in the foreground.

var caller = undefined;

// Start an ability in the foreground with ohos.aafwk.param.callAbilityToForeground in parameters set to true.
var wantForeground = {
    bundleName: "com.example.myservice",
    moduleName: "entry",
    abilityName: "MainAbility",
    deviceId: "",
    parameters: {
      "ohos.aafwk.param.callAbilityToForeground": true
    }
};

try {
  this.context.startAbilityByCall(wantForeground)
    .then((obj) => {
      // Carry out normal service processing.
      caller = obj;
      console.log('startAbilityByCall succeed');
    }).catch((error) => {
      // Process service logic errors.
      console.log('startAbilityByCall failed, error.code: ' + JSON.stringify(error.code) +
        ' error.message: ' + JSON.stringify(error.message));
    });
} catch (paramError) {
  // Process input parameter errors.
  console.log('error.code: ' + JSON.stringify(paramError.code) +
    ' error.message: ' + JSON.stringify(paramError.message));
}

你可能感兴趣的鸿蒙文章

harmony(鸿蒙)APIs

harmony(鸿蒙)API Reference Document Description

harmony(鸿蒙)BundleStatusCallback

harmony(鸿蒙)innerBundleManager(deprecated)

harmony(鸿蒙)distributedBundle

harmony(鸿蒙)Bundle

harmony(鸿蒙)Context

harmony(鸿蒙)DataUriUtils

harmony(鸿蒙)EnterpriseAdminExtensionAbility

harmony(鸿蒙)Work Scheduler Callbacks

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/52d9b7dba4694d51b35c4a024091960a