Public Sub ConnectToWifi(SSID as String, Password as String) As ResumableSub
Dim success As Boolean
Me.As(NativeObject).RunMethod("connectToWifi:::", Array(SSID, Password, False))
Wait For Connection_State (Result As Int)
Sleep(1000)
Select Result
Case 0 'Success
success = True
Case -1 'Unknown error
Case 1 'Invalid SSID
Case 2 'Invalid WPA passphrase
Case 7 'User denied
Case 8 'Internal error
Case 11 'Unknown
Case 13 'Already associated (bereits verbunden)
success = True
End Select
Return success
End Sub
Public Sub RemoveWifiConfig As ResumableSub
Dim mgr As NativeObject
mgr = mgr.Initialize("NEHotspotConfigurationManager").RunMethod("sharedManager", Null)
mgr.RunMethod("removeConfigurationForSSID:", Array(target_SSID))
Return True
End Sub
#if OBJC
#import <NetworkExtension/NetworkExtension.h>
- (void)connectToWifi:(NSString*)ssid :(NSString*)password :(BOOL)joinOnce {
NEHotspotConfiguration *config = [[NEHotspotConfiguration alloc]
initWithSSID:ssid
passphrase:password
isWEP:NO];
config.joinOnce = joinOnce;
[[NEHotspotConfigurationManager sharedManager]
applyConfiguration:config
completionHandler:^(NSError * _Nullable error) {
NSInteger code = 0;
if (error) {
NSString *domain = error.domain;
NSInteger code = error.code;
[B4I shared].lastError = error;
}
// Event auch bei "already associated" (13) als success signalisieren
//BOOL success = (code == 0 || code == 13);
[self.bi raiseUIEvent:nil event:@"connection_state:" params:@[@(code)]];
}];
}
#End If