我找到了一种让用户通过我的应用程序调用电话的方法。但是,我希望用户能够选择从中调用电话的应用程序(电话、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);
}
}
}
}
}
有没有办法让它像社交共享一样快速工作。感谢您的帮助。
最佳答案
有一种叫做 URL 方案 (URI) 的东西。 https://useyourloaf.com/blog/querying-url-schemes-with-canopenurl/
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>")
Skype:https://msdn.microsoft.com/en-us/library/office/dn745885.aspx
维伯:https://developers.viber.com/tools/deep-links/index.html
关于ios - 允许用户选择要在 Swift 中拨号的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43570588/