init method
- required int appID,
- required String appSign,
- required String userID,
- required String userName,
- required List<
IZegoUIKitPlugin> plugins, - ZegoCallPrebuiltConfigQuery? requireConfig,
- ZegoUIKitPrebuiltCallEvents? events,
- ZegoCallInvitationConfig? config,
- ZegoCallRingtoneConfig? ringtoneConfig,
- ZegoCallInvitationUIConfig? uiConfig,
- ZegoCallInvitationNotificationConfig? notificationConfig,
- ZegoCallInvitationInnerText? innerText,
- ZegoUIKitPrebuiltCallInvitationEvents? invitationEvents,
you must call this method as soon as the user login(or re-login, auto-login) to your app.
You must include ZegoUIKitSignalingPlugin
in plugins
to support the invitation feature.
If you need to set ZegoUIKitPrebuiltCallConfig, you can do so through requireConfig
.
Each time the ZegoUIKitPrebuiltCall starts, it will request this callback to obtain the current call's config.
Additionally, you can customize the call ringtone through ringtoneConfig
, and configure notifications through notificationConfig
.
You can also customize the invitation interface with uiConfig
. If you want to modify the related text on the interface, you can set innerText
.
If you want to listen for events and perform custom logics, you can use invitationEvents
to obtain related invitation events, and for call-related events, you need to use events
.
Implementation
Future<void> init({
required int appID,
required String appSign,
required String userID,
required String userName,
required List<IZegoUIKitPlugin> plugins,
/// call abouts.
ZegoCallPrebuiltConfigQuery? requireConfig,
ZegoUIKitPrebuiltCallEvents? events,
/// invitation abouts.
ZegoCallInvitationConfig? config,
ZegoCallRingtoneConfig? ringtoneConfig,
ZegoCallInvitationUIConfig? uiConfig,
ZegoCallInvitationNotificationConfig? notificationConfig,
ZegoCallInvitationInnerText? innerText,
ZegoUIKitPrebuiltCallInvitationEvents? invitationEvents,
}) async {
if (private._isInit) {
ZegoLoggerService.logWarn(
'service had init before',
tag: 'call',
subTag: 'call invitation service(${identityHashCode(this)})',
);
return;
}
await ZegoUIKit().getZegoUIKitVersion().then((uikitVersion) {
ZegoLoggerService.logInfo(
'versions: zego_uikit_prebuilt_call:4.9.1; $uikitVersion',
tag: 'call',
subTag: 'call invitation service(${identityHashCode(this)})',
);
});
private._isInit = true;
ZegoLoggerService.logInfo(
'service init',
tag: 'call',
subTag: 'call invitation service(${identityHashCode(this)})',
);
await private._initPrivate(
appID: appID,
appSign: appSign,
userID: userID,
userName: userName,
plugins: plugins,
requireConfig: requireConfig,
ringtoneConfig: ringtoneConfig,
config: config,
uiConfig: uiConfig,
notificationConfig: notificationConfig,
innerText: innerText,
events: events,
invitationEvents: invitationEvents,
);
_invitation._private.init(
innerText: innerText,
events: events,
);
await private.callkit._initCallKit(
pageManager: private._pageManager!,
androidNotificationConfig:
private._data!.notificationConfig.androidNotificationConfig,
);
await private._initPlugins(
appID: appID,
appSign: appSign,
userID: userID,
userName: userName,
);
await private._initPermissions().then((value) => private._initContext());
}