CMOS
CMOS

Reputation: 2917

Is it possible to programmatically call a telephone number in JS?

So basically right now I can create a button with an A tag that has an href="tel:XXXXXXXXXXX" and if a user clicks / taps on that it will bring them into their phone application. However I am trying to do this programmatically on gesture recognition (swipe). The gesture is working, so far I have tried window.location = "tel:XXXXXXXXXX"; window.open('tel:XXXXXXXXXX', '_top');

neither of which have worked yet. Any idea? Ionic / Angular 1

Note** It appears to only happen on iOS, Android seems to be working fine.

Upvotes: 11

Views: 14499

Answers (5)

Zane
Zane

Reputation: 2870

Try it on a real device.

None of these methods worked on the IOS emulator. It only worked on a physical device. That tripped me up for a while.

Upvotes: 2

mauron85
mauron85

Reputation: 1544

You probably just can't, when your APP is running from mobile browser. You'll need to wrap your app as cordova app or similar. Then you can for example use PhoneGap-PhoneDialer

Upvotes: 3

Siraj Hussain
Siraj Hussain

Reputation: 874

For this you will require to add this in the config.xml first

<access origin="tel:*" launch-external="yes" />

then call it like:

document.location.href = "tel:XXXXXXXXXX";

Whitelist Guide

Upvotes: 9

Amaresh C.
Amaresh C.

Reputation: 599

You can try with below one,

window.location.href = "tel:+91123456789";

But, for IOS it may not work because of some permission issues. In that case you can try like below,

window.open('tel:+91123456789', '_system');

Upvotes: 2

Cupid
Cupid

Reputation: 221

If you want to do it through html, then you just have to place a tag like this:

<a href="tel:XXXXXXXXXX">Call me!</a>

similarly if you wanna do it through javascript, you can do:

document.location.href = "tel:XXXXXXXXXX";

Upvotes: 14

Related Questions