मैं iPhone पर प्रोग्रामिक रूप से फोन कॉल कैसे कर सकता हूं? मैंने निम्नलिखित कोड की कोशिश की लेकिन कुछ नहीं हुआ:
NSString *phoneNumber = mymobileNO.titleLabel.text;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
मैं iPhone पर प्रोग्रामिक रूप से फोन कॉल कैसे कर सकता हूं? मैंने निम्नलिखित कोड की कोशिश की लेकिन कुछ नहीं हुआ:
NSString *phoneNumber = mymobileNO.titleLabel.text;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
जवाबों:
संभवतः mymobileNO.titleLabel.text मान में स्कीम शामिल नहीं है : //
आपका कोड इस तरह दिखना चाहिए:
NSString *phoneNumber = [@"tel://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
मूल ऐप पर वापस जाने के लिए आप telprompt: // का उपयोग कर सकते हैं बजाय tel: // - बताए संकेत तुरंत उपयोगकर्ता को संकेत देगा, लेकिन कॉल समाप्त होने पर यह आपके ऐप पर वापस जाएगा:
NSString *phoneNumber = [@"telprompt://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
tel://
नहींtelprompt://
@Cristian Radu और @Craig Mellon के उत्तर, और @ joel.d से टिप्पणी को जोड़ना, आपको यह करना चाहिए:
NSURL *urlOption1 = [NSURL URLWithString:[@"telprompt://" stringByAppendingString:phone]];
NSURL *urlOption2 = [NSURL URLWithString:[@"tel://" stringByAppendingString:phone]];
NSURL *targetURL = nil;
if ([UIApplication.sharedApplication canOpenURL:urlOption1]) {
targetURL = urlOption1;
} else if ([UIApplication.sharedApplication canOpenURL:urlOption2]) {
targetURL = urlOption2;
}
if (targetURL) {
if (@available(iOS 10.0, *)) {
[UIApplication.sharedApplication openURL:targetURL options:@{} completionHandler:nil];
} else {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[UIApplication.sharedApplication openURL:targetURL];
#pragma clang diagnostic pop
}
}
यह पहले "telprompt: //" URL का उपयोग करने का प्रयास करेगा, और यदि वह विफल रहता है, तो यह "tel: //" URL का उपयोग करेगा। यदि दोनों विफल होते हैं, तो आप iPad या iPod Touch पर फ़ोन कॉल करने का प्रयास कर रहे हैं।
स्विफ्ट संस्करण:
let phone = mymobileNO.titleLabel.text
let phoneUrl = URL(string: "telprompt://\(phone)"
let phoneFallbackUrl = URL(string: "tel://\(phone)"
if(phoneUrl != nil && UIApplication.shared.canOpenUrl(phoneUrl!)) {
UIApplication.shared.open(phoneUrl!, options:[String:Any]()) { (success) in
if(!success) {
// Show an error message: Failed opening the url
}
}
} else if(phoneFallbackUrl != nil && UIApplication.shared.canOpenUrl(phoneFallbackUrl!)) {
UIApplication.shared.open(phoneFallbackUrl!, options:[String:Any]()) { (success) in
if(!success) {
// Show an error message: Failed opening the url
}
}
} else {
// Show an error message: Your device can not do phone calls.
}
यहाँ जवाब पूरी तरह से काम कर रहे हैं। मैं सिर्फ स्विफ्ट के लिए क्रेग मेलन के जवाब को परिवर्तित कर रहा हूं। अगर कोई तेजी से जवाब की तलाश में आता है, तो इससे उन्हें मदद मिलेगी।
var phoneNumber: String = "telprompt://".stringByAppendingString(titleLabel.text!) // titleLabel.text has the phone number.
UIApplication.sharedApplication().openURL(NSURL(string:phoneNumber)!)
यदि आप एक iOS एप्लिकेशन विकसित करने के लिए Xamarin का उपयोग कर रहे हैं, तो यहां आपके एप्लिकेशन के भीतर फ़ोन कॉल करने के लिए C # समतुल्य है:
string phoneNumber = "1231231234";
NSUrl url = new NSUrl(string.Format(@"telprompt://{0}", phoneNumber));
UIApplication.SharedApplication.OpenUrl(url);
स्विफ्ट 3
let phoneNumber: String = "tel://3124235234"
UIApplication.shared.openURL(URL(string: phoneNumber)!)
स्विफ्ट 3.0 में,
static func callToNumber(number:String) {
let phoneFallback = "telprompt://\(number)"
let fallbackURl = URL(string:phoneFallback)!
let phone = "tel://\(number)"
let url = URL(string:phone)!
let shared = UIApplication.shared
if(shared.canOpenURL(fallbackURl)){
shared.openURL(fallbackURl)
}else if (shared.canOpenURL(url)){
shared.openURL(url)
}else{
print("unable to open url for call")
}
}
जावा रोबोवीएम समकक्ष:
public void dial(String number)
{
NSURL url = new NSURL("tel://" + number);
UIApplication.getSharedApplication().openURL(url);
}
ऊपर स्विफ्ट 3 विकल्प की कोशिश की, लेकिन यह काम नहीं किया। मुझे लगता है कि अगर आपको स्विफ्ट 3 पर iOS 10+ के खिलाफ चलना है तो आपको निम्नलिखित की आवश्यकता होगी:
स्विफ्ट 3 (iOS 10+):
let phoneNumber = mymobileNO.titleLabel.text
UIApplication.shared.open(URL(string: phoneNumber)!, options: [:], completionHandler: nil)
let phone = "tel://\("1234567890")";
let url:NSURL = NSURL(string:phone)!;
UIApplication.sharedApplication().openURL(url);
if let url = NSURL(string: "tel://\(number)"),
UIApplication.sharedApplication().canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
'OpenURL:' को पदावनत किया गया: पहले iOS 10.0 में पदावनत किया गया - कृपया OpenURL का उपयोग करें: विकल्प: पूर्णहैंडलर: बजाय
उद्देश्य-सी iOS 10+ उपयोग में:
NSString *phoneNumber = [@"tel://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber] options:@{} completionHandler:nil];