2012-11-14 10 views
6

Io uso l'integrazione di Skype nel mio iPhone app utilizzando HTML. Quando carico una pagina mostrerà se l'utente sarà online o offline. Quando premo il pulsante ONLINE, la mia app sarà chiusa e Skype sarà aperto. Ma, quando si preme il tasto ASSENTE accadrà la stessa cosa del genere sopra .. ho usato il seguente codice per la progettazione pulsante skype in WebView per mostrare lo stato in linea skype di utente e per skype chiamata.Come disattivare il pulsante di chiamata Skype in WebView, quando l'utente non è in linea?

<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> 

La mia domanda è come posso disabilitare la visualizzazione Web quando l'utente è offline?

cioè, se si preme il pulsante Offline, non dovrebbe fare nulla ..

risposta

0

questo risolverà il problema ur. Chiamare l'url http://mystatus.skype.com/arafa_futbal.xml in NSURLConnection e ottenere i dati XML e analizzarlo per ottenere lo stato utente Skype

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

Avete controllo sul codice HTML? In tal caso, utilizzare http://mystatus.skype.com/arafa_futbal.xml per decidere se creare un collegamento Skype o meno.

Una cautela: non so se ho sempre avuto "Consenti il ​​mio stato in linea di essere visualizzato sul Web" deselezionato, o se era l'impostazione predefinita, ma non funziona per me a meno che non giri che su sotto le impostazioni "Privacy".

Se non si ha il controllo sul codice HTML, non è qualcosa che mi so come fare con un UIWebView.

Problemi correlati