I have one link in my webpage where user can call to other skype user.

<a href="skype:skype_username?call">Call me</a>

But when user have not skype installed in their pc one notification popup is coming.

Is there any way in any manner i can detect is skype is installed or not? so i can give custom message to install skype.

Dani AI

Generated

A concise expert note and a practical fallback pattern that complements the replies from , and .

The reliable approach is progressive enhancement: try a protocol-handler open as a quick heuristic, but always present a visible install/fallback path because client browsers and OSes behave differently. The code below attempts the protocol, watches for a visibility/blur change as a sign the external app launched, and calls a fallback if nothing happens within a short timeout.

// attemptProtocolOpen(protocolUri, onNotInstalled, timeoutMs)
function attemptProtocolOpen(protocolUri, onNotInstalled, timeoutMs) {
  timeoutMs = timeoutMs || 1500;
  var iframe = document.createElement('iframe');
  iframe.style.display = 'none';
  document.body.appendChild(iframe);

  var handled = false;
  var timer = setTimeout(function() {
    if (!handled) onNotInstalled && onNotInstalled();
    cleanup();
  }, timeoutMs);

  function cleanup() {
    clearTimeout(timer);
    try { document.body.removeChild(iframe); } catch (e) {}
    document.removeEventListener('visibilitychange', onVisibility);
    window.removeEventListener('blur', onBlur);
  }

  function onVisibility() {
    if (document.visibilityState === 'hidden') {
      handled = true;
      cleanup();
    }
  }
  function onBlur() {
    handled = true;
    cleanup();
  }

  document.addEventListener('visibilitychange', onVisibility);
  window.addEventListener('blur', onBlur);

  try {
    iframe.contentWindow.location.href = protocolUri;
  } catch (e) {
    // some browsers throw — ignore and rely on timeout/fallback
  }
}

Troubleshooting and caveats:

  • This is heuristic. Some browsers block or prompt for custom URIs; mobile browsers often behave differently. Test Chrome, Firefox, Edge and Safari on desktop and mobile.
  • Use a clear, visible fallback (a download link, a web-calling option or instructions) rather than forcing redirects. Avoid very short timeouts; start around 1.2–1.8s and adjust.
  • Client-side detection cannot be perfectly reliable; server-side detection of installed apps is not possible.
  • If an official helper script or SDK is available (as noted earlier in the thread), prefer it for broad compatibility, and still keep the fallback UX described above.

Recommended Answers

All 5 Replies

Member Avatar for Member #334542

Somewhat you have to give a alternate link to download skype.Use the icon of Skype before your href and give the tool tip as click here to download skype. This is just my suggestion. I dont know how to identify whether they installed skype

According to some threads on stackoverflow, there was at some point a detection method available, but at the skype website there is no trace of it.

However, if skype is not installed, then you will get a popup that you need it.

i also found during search, but don't know how to implement it in coding as i have no idea of action script.

<head><script type="text/javascript" src=""></script></head>
<a href="skype:skype_username?call" onclick="return skypeCheck();"> Call me on Skype </a>

page 9999999 on the howtos, no-one is ever likely to find it,
it was linked as "how to offer skype me calls from my website"
but no longer is

Yeah this works... thnx almostbob and all..

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.