Salut,
Voici mon code :
La Fonction d’appelle :
func callNumber(phoneNumber:String) {
if let phoneCallURL = URL(string: "tel://\(phoneNumber)") {
let application:UIApplication = UIApplication.shared
if (application.canOpenURL(phoneCallURL)) {
application.open(phoneCallURL, options: [:], completionHandler: nil)
}
}
}
Boutton Action :
@IBAction func appelleMobile(_ sender: Any) {
if let numeroMobile = _person{
callNumber(phoneNumber: numeroMobile.telMobile)
print(numeroMobile.telMobile)
}
}
@IBAction func appelleFixe(_ sender: Any) {
if let numeroFixe = _person{
callNumber(phoneNumber: numeroFixe.telFixe)
print(numeroFixe.telFixe)
}
}
Je suis entrain de faire en sorte que l’on puisse appeler soit un numéro de fixe ou de mobile qui viens dU JSON que je récupère sur mon serveur.
Avec cette exemple de JSON quand je clique sur Fixe qui à une valeur “Inconnue” la fonction d’appelle ce lance et fonctionne, quand je clique sur le mobile rien ne ce passe.
{ civilite = "M. et Mme"; email = "<null>"; facturation = "XXXX"; fixe = "06 13 45 21 11"; libelleClient = Cantaloube; mobile = null; relance1 = 15; relance2 = 10; relance3 = 7; relance4 = 7; siret = null; }
Mais quand je clique les debug affiche bien le bon numéro de téléphone mais rien ne ce passe …
Dans ton JSON, tu as un fixe avec un numéro en 06 et un mobile avec une valeur nulle.
Du coup, en appuyant sur fixe, tu appelles le mobile et en appuyant sur mobile, le système ne peut composer un numéro null.
De plus, sur ta fonction “appelleFixe”, il te manque la } de fin du if.
Non ?
Salut Yann,
Alors en effet les mobiles dans les cases de fixes c’est normal, la base de données précédentes à mal été remplis, mais il devrait quand même ouvrir l’appli téléphone.
voila les nouvelles fonctions avec un exemple en JSON qui à les deux
@IBAction func appelleMobile(_ sender: Any) {
if let numeroMobile = _person{
callNumber(phoneNumber: numeroMobile.telMobile)
print(numeroMobile.telMobile)
}
}
@IBAction func appelleFixe(_ sender: Any) { if let numeroFixe = _person{ callNumber(phoneNumber: numeroFixe.telFixe) print(numeroFixe.telFixe) } }
JSON :
{
civilite = « »;
email = « »;
facturation = « Pour confirmation de votre commande, merci de nous »;
fixe = « 02 40 93 60 72 »;
libelleClient = « Cuisines A3C »;
mobile = « 06 63 66 75 98 »;
relance1 = 10;
relance2 = 10;
relance3 = 7;
relance4 = 7;
siret = « »;
},

Ca c’est le résultat des print dans les fonction appelle.
Donc le print fonctionne les numéro sont bons, mais le popup s’affiche uniquement quand c’est inconnue
J’ai du mal à comprendre ce que tu entends par : “mais le popup s’affiche uniquement quand c’est inconnue”
En gros dans le quand la valeur renvoyé par le JSON est null et bien je lui dis que telFixe = “Inconnue” avec un
let telFixe = user["fixe"] as? String ?? "Inconnue"
Quand la valeur est inconnue et bien ça fonctionne il veut bien appeller “Inconnue” mais un vrai numéro il veux pas
Ok, tu peux essayer en formatant le numéro de téléphone avec +33240…
Ou alors en supprimant les espaces dans le numéro ?
Le problème c’est que je les lis dans une base de 1600 lignes …
Si tu ne peux pas agir à la source, tu peux le faire à la récupération.
Tu peux te faire une variable avec le numéro récupéré et la travailler pour lui donner la forme voulue.
1 « J'aime »
J’en reviens pas c’était juste les espaces … 
Ça ne m’étonne pas plus que ça 
Mais tant mieux si ça fonctionne 
ahahah merci beaucoup maintenant faut que je supprime tous les espace dans ma base …
Avec plaisir 
Un petit script et ça roule non ?
Et un traitement de la donnée à l’injection d’un nouvel enregistrement.
Je pense plustôt checker le numéro que j’ai récupérer dans ma fonction appelleFixe/mobile, si c’est pas bon je supprime les espaces ou les points en trop …
En effet il s’agit d’une url : tel://… et il ne faut pas d’espace dans les url 
Je suis toujours d’avis d’avoir des données stockées qui soient le plus formatées possible. Et je préfère que mon serveur travaille plutôt que le terminal client. D’autant plus quand il s’agit d’appareils nomades.
Moins l’application en fait, plus elle sera réactive 
1 « J'aime »
Ok merci du conseil, quand je vais refaire la base je vais tout refaire correctement mais pour l’instant mon niveau de sql / php n’est pas assez élévé
Je pensais à ça mais est ce que il y aurais moyen de fair un gitter ou un slack pour le form ?