Ios 允许用户在Swift中选择要拨号的应用程序

Ios 允许用户在Swift中选择要拨号的应用程序,ios,swift,skype,phone-call,viber,Ios,Swift,Skype,Phone Call,Viber,我找到了一种让用户通过我的应用程序拨打电话的方法。但是,我希望用户能够选择从中拨打电话的应用程序(phone、Viber、Skype),这与社交共享功能类似,但只适用于电话。 我现在用这个直接拨号: public static func callNumber(phoneNumber: String) { let cleanPhoneNumber = phoneNumber.trimmingCharacters(in: CharacterSet(charactersIn: "012345678

我找到了一种让用户通过我的应用程序拨打电话的方法。但是,我希望用户能够选择从中拨打电话的应用程序(phone、Viber、Skype),这与社交共享功能类似,但只适用于电话。

我现在用这个直接拨号:

public static func callNumber(phoneNumber: String) {  
let cleanPhoneNumber = phoneNumber.trimmingCharacters(in: CharacterSet(charactersIn: "01234567890").inverted)
        if let phoneCallURL = URL(string: "tel://\(cleanPhoneNumber)")  {
            if UIDevice.current.model.range(of: "iPad") != nil {
                print("Your device doesn't support this feature.")
            } else {
                let application: UIApplication = UIApplication.shared
                if (application.canOpenURL(phoneCallURL)) {
                    let mobileNetworkCode = CTTelephonyNetworkInfo().subscriberCellularProvider?.mobileNetworkCode
                    if( mobileNetworkCode == nil) {
                        print(" No sim present Or No cellular coverage or phone is on airplane mode.")
                    }
                    else {
                        application.openURL(phoneCallURL);
                    }
                }
            }
        }
    }

有没有办法让它像swift中的社会共享一样工作。谢谢你的帮助。

有一个东西叫做URL shemes(URI)

func打开(方案:字符串){
如果let url=url(字符串:scheme){
UIApplication.shared.open(url,选项:[:],completionHandler:{
(成功)在
打印(“打开\(方案):\(成功)”)
})
}
}
开放(方案:“skype:”)
开放式(方案:“毒蛇:”)
Skype:

维伯:

有一个东西叫做URL-shemes(URI)

func打开(方案:字符串){
如果let url=url(字符串:scheme){
UIApplication.shared.open(url,选项:[:],completionHandler:{
(成功)在
打印(“打开\(方案):\(成功)”)
})
}
}
开放(方案:“skype:”)
开放式(方案:“毒蛇:”)
Skype:

Viber:

欢迎来到SO!请阅读本文并显示您试图解决问题的代码。欢迎使用SO!请阅读此内容并显示您试图解决此问题的代码。
func open(scheme: String) {
  if let url = URL(string: scheme) {
    UIApplication.shared.open(url, options: [:], completionHandler: {
      (success) in
      print("Open \(scheme): \(success)")
    })
  }
}

open(scheme: "skype:<params>")
open(scheme: "viber:<params>")