2012-11-14 28 views
6

Tôi sử dụng tích hợp Skype trong ứng dụng iPhone của mình bằng cách sử dụng html. Khi tôi tải một trang, nó sẽ hiển thị cho dù người dùng sẽ trực tuyến hay ngoại tuyến. Khi tôi nhấn nút ONLINE, ứng dụng của tôi sẽ bị đóng và Skype sẽ mở. Tuy nhiên, khi tôi bấm nút OFFLINE nó sẽ xảy ra cùng một điều như trên .. Tôi đã sử dụng đoạn mã sau để thiết kế nút skype trong chế độ xem web để hiển thị trạng thái trực tuyến skype của người dùng và gọi skype.Cách tắt nút gọi skype trong chế độ xem web, khi người dùng ngoại tuyến?

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

Câu hỏi của tôi là làm cách nào để tắt chế độ xem web khi người dùng ngoại tuyến?

tức là, Nếu tôi nhấn nút TẮT, nó không nên làm bất cứ điều gì ..

Trả lời

0

Điều này sẽ giải quyết vấn đề về ur. Gọi url http://mystatus.skype.com/arafa_futbal.xml trong nsurlconnection và lấy dữ liệu xml và phân tích cú pháp để lấy trạng thái skype của người dùng

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

Bạn có quyền kiểm soát HTML không? Nếu vậy, hãy sử dụng http://mystatus.skype.com/arafa_futbal.xml để quyết định có tạo liên kết Skype hay không. Một cảnh báo: Tôi không biết liệu tôi có luôn luôn "Cho phép trạng thái trực tuyến của tôi được hiển thị trên web" không được chọn hoặc nếu đó là mặc định, nhưng nó không hoạt động cho tôi trừ khi tôi bật trong cài đặt "Bảo mật".

Nếu bạn không có quyền kiểm soát HTML, đó không phải là điều tôi muốn biết cách thực hiện với UIWebView.

Các vấn đề liên quan