Cordova essayant de composer le numéro de téléphone

J'essaie de composer un numéro de téléphone dans iOS, mais je n'ai que le simulateur et un iPod Touch à tester.

Le code utilise quelque chose du genre:

window.location.href = 'tel:01234567890'; 

Fonctionne bien avec Android, mais dans iOS, il meurt avec:

Impossible de charger la page Web avec une erreur: l'URL ne peut pas être affichée

Maintenant, je me rends count que cela a été demandé auparavant, mais le consensus général d'il y a quelque time était: "Cela ne fonctionne pas, vous aurez besoin d'utiliser un plugin". Il n'y a pas eu beaucoup de questions à ce sujet depuis un certain time, et quelles questions semblent suggérer que cela fonctionne quand on le fait par programmation (comme ci-dessus avec window.location.href ). J'ai essayé iOS PhoneDialer et la version plus récente du même plugin, mais les deux ont des erreurs dans XCode ( ARC forbids explicit message send of 'release' ) – un peu de faffing et je peux le faire fonctionner, mais PhoneGap ne le fait pas find le plugin – on a vraiment l'printing de bash un mur de briques avec cette méthode, et je ne peux pas croire quelque chose d'aussi simple que cela nécessite quelque chose d'aussi exagéré.

Je sais que vous ne pouvez pas composer automatiquement / appeler automatiquement un numéro pour des raisons de security, mais tout ce que je dois faire est d'ouvrir le numéroteur avec le numéro pré-rempli, ce qui n'est certainement pas différent d'un lien mailto:[email protected] client de messagerie électronique avec l'expéditeur pré-rempli?

Donc, mes questions sont:

  • Est-ce que cela a changé avec une récente mise à jour de PhoneGap, iOS ou XCode?
  • Ou, est-ce un cas que je ne peux pas faire ceci sur un iPod ou un simulateur, et cela fonctionnera bien sur un iPhone?
  • Comment puis-je le réparer? 🙂

Vous n'avez pas spécifié la version de Cordova que vous utilisez, donc je suppose que la version est> 3.

Assurez-vous que InAppBrowser , un plugin depuis la version 3, est installé , puis ouvrez le lien en l'appelant par Javascript comme ceci:

 window.open('tel:12345678', '_system') 

_system l'ouvrira avec le propre browser des systèmes qui à son tour ouvrira la boîte de dialog d'appel, si vous l'utilisez contre http://maps.apple.com/ il s'ouvrira dans l'application maps et similaire pour d'autres applications qui s'ouvrent pour des URL spéciales .

Remarques:

  • Comme décrit dans les documents du plugin window.open fonction window.open ne sera pas définie automatiquement. Vous devez le faire vous-même: window.open = cordova.InAppBrowser.open; . Au lieu de cela, vous pouvez utiliser directement cordova.InAppBrowser.open('tel:12345678', '_system');
  • Assurez-vous que votre numéro ne contient aucun espace (le préfixe + est correct). Par exemple, vous pouvez utiliser une fonction comme celle-ci, en supposant que num est une string.

Fonction:

 function placeCall(num) { if (window.cordova) { cordova.InAppBrowser.open('tel:' + num.replace(/\s/g,''), '_system'); } } 

Ci-dessous le code fonctionne parfaitement bien pour l'iphone: –

window.open ('tel: 123456', '_system');

Le simulateur ne prend pas en charge le numéroteur. Pas besoin de perdre du time.

Assurez-vous que le numéro de téléphone de votre href n'a pas de formatting, car sur iOS, le lien ne fonctionne pas dans une application PhoneGap. Par exemple, utilisez tel: 0390005555, et non tel: (03) 9000 5555.

Je ne crois pas que ce soit un problème Cordova. Je sais que dans iOS natif, vous ne pouvez pas afficher le dialer sur le simulateur ou sur un iPod touch. Vous aurez besoin de tester cela sur un iPhone réel.

Je sais que c'est un time de réponse tardif.

Essayez en ajoutant // à l'url. Comme ceci tel://xxxxxxxxx et voyez si cela fonctionne.

A travaillé pour moi dans IOS 8.4, iPhone 6, 6+ dès aujourd'hui.