2012-11-14 6 views
6

Używam integracji Skype w mojej aplikacji na iPhone'a przy użyciu html. Po załadowaniu strony wyświetli się informacja, czy użytkownik będzie online czy offline. Po naciśnięciu przycisku ONLINE moja aplikacja zostanie zamknięta, a Skype zostanie otwarty. Ale kiedy naciśniesz przycisk OFFLINE, stanie się to samo powyżej. Użyłem następującego kodu do zaprojektowania przycisku skype w widoku sieciowym, aby pokazać stan online skype użytkownika i dla połączeń Skype.Jak wyłączyć przycisk połączenia Skype w widoku internetowym, gdy użytkownik jest offline?

<a href="skype:arafa_futbal?call"> 
<img src="http://mystatus.skype.com/smallclassic/arafa_futbal" style="border: none;" 
width="114" height="20" alt="My status" /> 
</a> 

Moje pytanie brzmi: jak mogę wyłączyć wyświetlanie internetowe, gdy użytkownik jest offline?

tj Jeśli naciśnięciu przycisku w trybie offline, to nie powinien robić nic ..

Odpowiedz

0

To rozwiąże problem ur. Zadzwoń url http://mystatus.skype.com/arafa_futbal.xml w NSURLConnection i uzyskać dane XML i analizować je, aby uzyskać status skype użytkownik

NSURL *url = [NSURL URLWithString:@"http://mystatus.skype.com/arafa_futbal.xml"stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url]; 
[req addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
[req addValue:0 forHTTPHeaderField:@"Content-Length"]; 
[req setHTTPMethod:@"GET"]; 
conn = [[NSURLConnection alloc] initWithRequest:req delegate:self]; 
if (conn) { 
webData = [[NSMutableData data] retain]; 
} 

-(void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ 
    [webData setLength:0]; 
} 
-(void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ 
    [webData appendData:data]; 
} 

-(void) connectionDidFinishLoading:(NSURLConnection *) connection { 
xmlParser = [[NSXMLParser alloc] initWithData:webData]; 
[xmlParser setDelegate:self]; 
[xmlParser setShouldResolveExternalEntities:YES]; 
[xmlParser parse]; 
} 
-(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
} 

-(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 
    if ([string isEqualToString:@"Offline"]) 
    { 
    webview.userinteractionEnabled = NO; 
    } 
    if ([string isEqualToString:@"Online"]) 
    { 
    webview.userinteractionEnabled = YES; 
    } 
} 
1

Czy masz kontrolę nad HTML? Jeśli tak, użyj opcji http://mystatus.skype.com/arafa_futbal.xml, aby zdecydować, czy utworzyć łącze Skype, czy nie.

Jedna uwaga: nie wiem, czy od zawsze zaznaczono opcję "Zezwól na wyświetlanie mojego stanu online w Internecie" lub czy było to ustawienie domyślne, ale nie działa ono dla mnie, dopóki się nie włączę na podstawie ustawień "Prywatność".

Jeśli nie masz kontroli nad kodem HTML, nie jest to coś, co mógłbym zrobić z UIWebView.

Powiązane problemy