প্রোগ্রামগতভাবে একটি ফোন কল করুন


138

আমি কীভাবে আইফোন এ প্রোগ্রাম কল করে একটি ফোন কল করতে পারি? আমি নিম্নলিখিত কোড চেষ্টা করেছিলাম কিন্তু কিছুই ঘটেনি:

NSString *phoneNumber = mymobileNO.titleLabel.text;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];

উত্তর:


189

সম্ভবত mymobileNO.titleLabel.text মানটিতে স্কিমটি টেলটি অন্তর্ভুক্ত নয় : //

আপনার কোডটি দেখতে এমন হওয়া উচিত:

NSString *phoneNumber = [@"tel://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];

3
এই পদ্ধতির সাহায্যে আমরা আসল প্রয়োগে ফিরে যেতে পারার কোনও সুযোগ নেই।
আর্টেম ওবোটুরভ

4
আমি মনে করি মেলনের পদ্ধতির আরও ভাল কারণ এটি ব্যবহারকারীকে প্রথমে অনুরোধ করে এবং তারপরে কল করার পরে আপনার অ্যাপে ফিরে আসে। শুধু canOpen URL ব্যবহার নিশ্চিত করুন: এবং টেলপ্রম্পটে ফলব্যাক: প্রম্পট যেহেতু টেলপ্রম্পটটি অফিসিয়াল নয় এবং ভবিষ্যতের আইওএস সংস্করণে অপসারণ করা যেতে পারে।
joel.d

আমি কীভাবে অ্যাপল ঘড়ি থেকে ফোন কল করতে পারি।
আহাদ খান

1
আইওএস-এ কল উত্পন্ন হওয়ার জন্য আমি কি প্রোগ্রামারিকভাবে স্পিকার চালু করতে পারি?
uniruddh

এমনকি টেলিফোন: 1234567890 এছাড়াও ঠিক কীভাবে বলুন: // 1234567890 এটি কাজ করে
দুরাই আমুতান han

218

আসল অ্যাপ্লিকেশনটিতে ফিরে যেতে আপনি টেল প্রম্পট: // টিলে টেল প্রম্পট ব্যবহার করতে পারেন: // - টেল প্রম্পটটি প্রথমে ব্যবহারকারীকে অনুরোধ করবে, কিন্তু কলটি শেষ হয়ে গেলে এটি আবার আপনার অ্যাপে ফিরে যাবে:

NSString *phoneNumber = [@"telprompt://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];

9
আমার একটি প্রশ্ন আছে: টেলপ্রম্পট: // ব্যবহার করা অ্যাপ্লিকেশনগুলি কি অ্যাপল প্রত্যাখ্যান করবে?
সিমিগল

7
আমি জানি এটি পুরানো তবে আমি দু'জন লোককে দাবি করেছি যে তাদের অ্যাপ্লিকেশন টেলপ্রম্পট ব্যবহার করে অনুমোদিত হয়েছে: "আমি আমার অ্যাপ্লিকেশনটি জমা দিয়েছি যা ইউইইউবকিট ছাড়াই শেয়ার অ্যাপ্লিকেশন সহ টেলপ্রম্পট ব্যবহার করে এবং অ্যাপল দ্বারা সফলভাবে অনুমোদিত হয়েছে। উত্তর 19 জানুয়ারী পাবলো আলেজান্দ্রো জঙ্গা "
মার্ক ম্যাককর্কল

1
telprompt: // হ'ল অনাবন্ধিত এবং অতএব কখনই নির্ভর করা উচিত নয়। জিনিসগুলি পরিবর্তিত হতে পারে, উদাহরণস্বরূপ অ্যাপল কোনও প্রদত্ত ইউআরএল স্কিমই সিদ্ধান্ত নিতে পারে যা তাদের একচেটিয়াভাবে প্রয়োজন বা কেবল অনুমতি দিতে ইচ্ছুক নয়, তারপরে আপনার অ্যাপ্লিকেশনটি ভেঙে যাবে।
ডিভিসি

@ ডেভিসি: তাহলে আমাদের অ্যাপে ফোন কল ফিচার থাকার বিকল্প কী?
বাশা

@ বাশা ব্যবহার করবেন tel://নাtelprompt://
ডিভিসি

24

@ ক্রিশ্চিয়ান রাদু এবং @ ক্রেইগ মেলনের উত্তরগুলি মিশ্রণ করা এবং @ জোয়েল.ডির মন্তব্যটি আপনার করা উচিত:

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 টি ব্যবহার করবে। যদি উভয়ই ব্যর্থ হয়, আপনি একটি আইপ্যাড বা আইপড টাচে একটি ফোন কল দেওয়ার চেষ্টা করছেন।

সুইফ্ট সংস্করণ:

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

10

এখানে উত্তরগুলি নিখুঁতভাবে কাজ করছে। আমি কেবল ক্রেগ মেলন উত্তরকে সুইফটে রূপান্তর করছি। যদি কেউ দ্রুত উত্তর খুঁজছেন, এটি তাদের সহায়তা করবে।

 var phoneNumber: String = "telprompt://".stringByAppendingString(titleLabel.text!) // titleLabel.text has the phone number.
        UIApplication.sharedApplication().openURL(NSURL(string:phoneNumber)!)

আপনি টেলপ্রম্পট এর জায়গায় টেল: // ব্যবহার করতে পারেন: //
শিবায়ে

ফোন নম্বর দিন: স্ট্রিং = "টেলপ্রম্পট: // (শিরোনামলাবেল.টেক্সট)" "ইউআইএপ্লিকেশন.শারেড.ওপেন ইউআরএল (ইউআরএল (স্ট্রিং: ফোন
নাম্বার

8

আপনি যদি কোনও আইওএস অ্যাপ্লিকেশন বিকাশের জন্য জামারিন ব্যবহার করছেন তবে আপনার অ্যাপ্লিকেশনের মধ্যে একটি ফোন কল করার জন্য সি # সমতুল্য:

string phoneNumber = "1231231234";
NSUrl url = new NSUrl(string.Format(@"telprompt://{0}", phoneNumber));
UIApplication.SharedApplication.OpenUrl(url);


4

সুইফ্ট 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")
        }

    }

3

জাভা রোবওভিএম সমতুল্য:

public void dial(String number)
{
  NSURL url = new NSURL("tel://" + number);
  UIApplication.getSharedApplication().openURL(url);
}

3

উপরের সুইফট 3 বিকল্পটি চেষ্টা করে দেখুন, তবে এটি কার্যকর হয়নি। আমি মনে করি আপনি যদি সুইফট 3 এ আইওএস 10+ এর বিরুদ্ধে চালাতে চান তবে আপনার নিম্নলিখিতগুলি প্রয়োজন:

সুইফট 3 (আইওএস 10+):

let phoneNumber = mymobileNO.titleLabel.text       
UIApplication.shared.open(URL(string: phoneNumber)!, options: [:], completionHandler: nil)



0

'ওপেন ইউআরএল:' অবহেলা করা হয়েছে: প্রথম আইওএস 10.0 এ অবহেলা করা হয়েছে - দয়া করে ওপেন URL ব্যবহার করুন: বিকল্পগুলি: সমাপ্তি হ্যান্ডলার: পরিবর্তে

উদ্দেশ্য-সি আইওএস 10+ ব্যবহারে:

NSString *phoneNumber = [@"tel://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber] options:@{} completionHandler:nil];
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.