2009-03-20 42 views

Trả lời

113

Bạn có thể bắt đầu một cuộc gọi

https://developer.apple.com/library/content/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.html

Vì vậy, điều này có lẽ sẽ làm việc

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:12125551212"]]; 
+0

Tôi đã làm những gì bạn đề nghị, nhưng trong giả lập iphone không có gì xảy ra. cũng giống như làm việc. Không đóng ứng dụng và điện thoại bắt đầu quay số? – LolaRun

+24

Trình mô phỏng không có điện thoại. Kiểm tra nó trên thiết bị. –

+1

@LouFranco Cảm ơn gợi ý đã giúp tôi – shox

-1

này sẽ thể là rất nền tảng cụ thể, hoặc bạn sẽ phải sử dụng một thư viện wrapper để tài khoản cho sự khác biệt giữa các nền tảng, vì vậy bạn nên nêu rõ nền tảng này được thiết kế để làm gì. Nói chung, có nhiều API điện thoại khác nhau có sẵn trên hầu hết các nền tảng.

Trên các hệ thống Windows có ví dụ "TAPI", mọi thứ có thể hơi khác nếu bạn đang nhắm mục tiêu hệ thống điện thoại kỹ thuật số như ISDN, vì có sẵn các API khác.

+1

Câu hỏi đã chỉ định Objective-C mặc dù, trong trường hợp này _probably_ nghĩa là iOS – powerj1984

10

tốt nếu bạn đang nói về việc sử dụng Objective-C để thực hiện cuộc gọi điện thoại trên iphone, sau đó bạn có thể làm một cái gì đó như thế này:

NSURL *phoneNumber = [[NSURL alloc] initWithString: @"tel:867-5309"]; 
[[UIApplication sharedApplication] openURL: phoneNumber]; 

Nếu bạn đang nói về việc này trên mac, cũng , như những người khác đã đề cập cụ thể dựa trên số lượng những thứ như, nếu bạn đang sử dụng voip, một modem, kết nối thông qua một cái gì đó như hộp Asterisks, v.v ..

22

Điều này được cắt bớt từ một dự án tôi đã làm chỉ có:

NSString *phoneStr = [[NSString alloc] initWithFormat:@"tel:%@",phone_number]; 
NSURL *phoneURL = [[NSURL alloc] initWithString:phoneStr]; 
[[UIApplication sharedApplication] openURL:phoneURL]; 
[phoneURL release]; 
[phoneStr release]; 
+1

Vui lòng sử dụng autorelease trừ khi bạn có lý do nào đó không. Ngoài ra, bạn có thể sử dụng 'stringWithFormat' đã cung cấp cho bạn một đối tượng autoreleased. –

+2

@Yar - Thực ra, vui lòng tránh tự động trả tiền nếu bạn không có lý do. – Abizern

+0

@Abizern, tại sao? Bạn lo lắng về bộ nhớ hoặc chi phí hiệu suất? Cho đến khi chúng tôi nhận được ARC (mà chúng tôi đã nhận được trên iOS) hoặc một gc (như trên MacOS), autorelease làm cho mã sạch hơn với hầu như không có chi phí. Trừ khi bạn đang ở trong một vòng lặp dài, tôi (và nhiều người khác, tôi có thể trích dẫn rằng nếu bạn muốn) tin rằng autorelease là thích hợp hơn. –

17

Nó cũng có thể hữu ích để biết làm thế nào để nhắc nhở người dùng để gọi một số:

NSURL *phoneNumber = [NSURL URLWithString:@"telprompt://13232222222"]; 
[[UIApplication sharedApplication] openURL:phoneNumber]; 

telprompt mang đến cho người dùng một sự lựa chọn để đặt cuộc gọi hoặc hủy thực hiện cuộc gọi trước khi quay số điện thoại. Hai dấu gạch chéo về phía trước sau dấu hai chấm là tùy chọn.

0
NSString *phoneNumber = @"Phone number here"; 
UIWebView *webView = [[UIWebView alloc] init]; 
NSURL *url = [NSURL URLWithString:numberString];   
NSURLRequest *requestURL = [NSURLRequest requestWithURL:url]; 
webView.dataDetectorTypes = UIDataDetectorTypeNone; 
[webView loadRequest:requestURL]; 
3

BỎ khoảng trống TRÊN SỐ ĐIỆN THOẠI

NSString *phoneNumberString = @"123 456"; 
phoneNumberString = [phoneNumberString stringByReplacingOccurrencesOfString:@" " withString:@""]; 
phoneNumberString = [NSString [email protected]"tel:%@", phoneNumberString]; 
NSURL *phoneNumberURL = [NSURL URLWithString:phoneNumberString]]; 
[[UIApplication sharedApplication] openURL:phoneNumberURL]; 
2

openURL bị phản đối.

Bây giờ sử dụng này:

UIApplication *application = [UIApplication sharedApplication]; 
[application openURL:[NSURL URLWithString: @"tel:12125551212"] options:@{} completionHandler:nil]; 
Các vấn đề liên quan