initialize method
Future<void>
initialize({
- String? providerBundleIdentifier,
- String? localizedDescription,
- String? groupIdentifier,
- dynamic lastStatus(
- V2RayStatus status
- dynamic lastStage(
- V2RayStage stage
Initialize the engine. Must be called before connect.
On iOS, providerBundleIdentifier, localizedDescription and
groupIdentifier are required.
Implementation
Future<void> initialize({
String? providerBundleIdentifier,
String? localizedDescription,
String? groupIdentifier,
Function(V2RayStatus status)? lastStatus,
Function(V2RayStage stage)? lastStage,
}) async {
if (Platform.isIOS) {
assert(
groupIdentifier != null &&
providerBundleIdentifier != null &&
localizedDescription != null,
'groupIdentifier, providerBundleIdentifier and localizedDescription '
'are required for iOS.',
);
}
onVpnStatusChanged?.call(V2RayStatus.empty());
initialized = true;
_initializeListener();
return _channelControl.invokeMethod('initialize', {
'groupIdentifier': groupIdentifier,
'providerBundleIdentifier': providerBundleIdentifier,
'localizedDescription': localizedDescription,
}).then((_) {
Future.wait([
status().then((s) => lastStatus?.call(s)),
stage().then((s) {
if (s == V2RayStage.connected && _statusTimer == null) {
_startStatusTimer();
}
return lastStage?.call(s);
}),
]);
});
}