Показать сообщение отдельно
Старый 27.12.2012, 11:21
maincode вне форума Посмотреть профиль Отправить личное сообщение для maincode Посетить домашнюю страницу maincode Найти все сообщения от maincode
  № 2  
Ответить с цитированием
maincode

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
я думаю вам лучше с этим вопросом обратится к iOS/Objective-C разработчикам, флешеры вряд ли помогут

Добавлено через 37 минут
Прошу прощения, не внимательно прочитал сообщение. В моем проекте есть ane расширение которое определяет наличие подключения, и отправляет событие в момент изменения состояния сети доступно/недоступно


определение доступности сети
Код:
FREObject isNetworkReachable_phone(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
    NSLog(@"isNetworkReachable_phone");
    BOOL returnValue = NO;
    
    // Инициализируем структуру sockaddr_in
    struct sockaddr_in address;
    size_t address_len = sizeof(address);
    memset(&address, 0, address_len);
    address.sin_len = address_len;
    address.sin_family = AF_INET;
    
    SCNetworkReachabilityRef reachabilityRef = SCNetworkReachabilityCreateWithAddress(NULL, (const struct sockaddr*)&address);
    
    if (reachabilityRef != NULL) {
        SCNetworkReachabilityFlags flags = 0;
        if(SCNetworkReachabilityGetFlags(reachabilityRef, &flags)){
            returnValue = checkFlags(flags);
        }
        CFRelease(reachabilityRef);
    }
    NSLog(@"    * returnValue = %d", returnValue);
    return boolToFre(returnValue);

}
старт/стоп сканирования сети, в случае изменения состояния, отправляется событие:
Код:
void _NetworkReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* info)
{
    NSLog(@"_NetworkReachabilityCallback = %i", flags);
    BOOL enabled = checkFlags(flags);
    NSLog(@"    enabled = %d", enabled);
    [network networkChange:enabled];
}

SCNetworkReachabilityRef reachabilityRef;
FREObject startMonitoring_phone(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
    NSLog(@"startMonitoring_phone");
    // Инициализируем структуру sockaddr_in
    struct sockaddr_in address;
    size_t address_len = sizeof(address);
    memset(&address, 0, address_len);
    address.sin_len = address_len;
    address.sin_family = AF_INET;
    
    reachabilityRef = SCNetworkReachabilityCreateWithAddress(NULL, (const struct sockaddr*)&address);
    
    if (reachabilityRef != NULL) {
        SCNetworkReachabilityContext context = { 0, NULL, NULL, NULL, NULL};
        if(SCNetworkReachabilitySetCallback(reachabilityRef, _NetworkReachabilityCallback, &context)) {
            SCNetworkReachabilityScheduleWithRunLoop(reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
        }
        NSLog(@"    YES");
        return boolToFre(YES);
    }
    NSLog(@"    NO");
    return boolToFre(NO);
}

FREObject stopMonitoring_phone(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
    NSLog(@"stopMonitoring_phone");
    if(reachabilityRef) {
        SCNetworkReachabilityUnscheduleFromRunLoop(reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
        CFRelease(reachabilityRef);
        return boolToFre(YES);
    }
    return boolToFre(NO);
}