My App est comme ceci:canOpenURL réussir, mais openURL échoue, car tel que urlschema
utilisateur entre le numéro de téléphone dans un textField. App l'enregistre. Ensuite, il affiche l'écran du numéro de téléphone dans le détail qui a le bouton "Appel". J'appelle la méthode canOpenURL
et si elle réussit, alors je garde mon bouton d'appel activé, sinon je le garde désactivé.
Je crée des URL avec un format comme celui-ci: tel:phone number
.
Maintenant, un de mes testeurs a ajouté le numéro de téléphone = '55'. Maintenant, quand j'appelle canOpenURL
, alors il obtient le succès, mais quand j'appelle la méthode openURL
, il n'apparaît pas le popup pour le numéro de téléphone.
Celui-ci fonctionne parfaitement bien pour d'autres numéros de téléphone, même des numéros de téléphone à 2 chiffres comme = 13, mais pour certains numéros de téléphone spécifiques comme 55,56, il devient défectueux.
REMARQUE: Conformément à l'exigence de mon client, je ne dois pas mettre de validation sur le numéro de téléphone, comme il doit avoir n nombre de caractères ou plus. Donc, s'il vous plaît ne pas fournir des réponses comme ça. J'ai exigé la raison pour laquelle canOpenURL obtient le succès et l'openURL obtenant l'échec.
Selon vous, le nombre 25, 29 etc ne devrait pas fonctionner, les nombres commençant par seulement 1 ou 0 ne devraient fonctionner. alors j'ai essayé différents nombres et j'ai trouvé ceci: 1. tous les numéros de téléphone de 3 chiffres fonctionnent, 2. pour le cas des nombres de téléphone de 1 et 2 chiffres, ceux commençant par 0,1 ou 2 fonctionne, d'autres ne fonctionnent pas –
Comme j'interprète le RFC, vous pouvez soit utiliser un * global * num (qui commence par un caractère '+') ou un * local * qui nécessite toujours un * contexte *, c'est-à-dire quelque chose comme '; phone-context =' at la fin de l'URI. Peut-être que seulement Apple sait ce qu'ils ont fait ... –