У меня возникает проблема при звонке из приложения через iPhone XR, и у него есть только eSIM, а не физическая SIM-карта. Если я вставляю физический sim-код, код работает отлично, но если у меня есть единственный eSIM в iPhone, он отображает ошибку, такую как Simcard Not Available
Я использую приведенный ниже код для вызова из приложения
let phoneNumber = safetyArr[indexPath.row]["number"] as! String
print("Phone Number : \(phoneNumber)")
if hasCellularCoverage() == true {
print("SIM Available")
if let url = URL(string: "telprompt:\(phoneNumber)") {
if UIApplication.shared.canOpenURL(url) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
} else {
self.view.makeToast("Call facility is not available", duration: 3.0, position: .bottom)
}
} else {
self.view.makeToast("Mobile number not available", duration: 3.0, position: .bottom)
}
}
else {
self.view.makeToast("Sim card not available", duration: 3.0, position: .bottom)
}
func hasCellularCoverage () -> Bool {
let networkInfo = CTTelephonyNetworkInfo()
guard let info = networkInfo.subscriberCellularProvider else {return false}
return info.isoCountryCode != nil ? true : false
}