IT30

スマホ閲覧時に電話番号をタップしただけで電話をかけられるようにする方法

スマホ閲覧時に電話番号をタップしただけで電話をかけられるようにする方法

2019.06.13 更新

スマートフォンで企業サイトやランディングページ、ポータルサイトなどを見ていると、電話番号やバナーをタップしたらすぐに電話アプリが起動して目的の電話番号に電話をかけてくれますよね?

今では電話番号の表記があれば、当たり前のようにそこをタップすれば電話がかかると思っている人も多いはずです。

では制作者サイドとしてはどのようにコードを書けば良いのでしょうか…。

 

aタグに入れてあげるだけで簡単に実装できます

 

ウェブサイトを作っているとよく使うaタグ(リンクタグ)ですが、ここに電話をかけるための記述をするだけでOKです。

<a href="tel:0312345678">お電話はこちら</a>

“tel: ここに実際かける電話番号” (必ず半角で)

aタグの中は電話番号でもテキストでもイメージでも用途に合わせて変更してみてください。

 

リンク先として指定をするのでPCで閲覧時でも、リンクをクリックすれば電話をかけることができます。

ですがPCからの場合は電話をかけられなくても良いことが多いと思いますので、PCのみ無効化することも可能です。

 

PCでの無効化をCSSでする方法

a[href^="tel:"] {
    pointer-events: none;
}

とても単純な話ですがPCの場合はpointer-eventsでクリックをできないようにしてしまいます。

クリックできないんだから電話もできないということですね。

これをPC用のCSSに追記してあげれば、スマートフォンではリンクが動作しますがPCではクリックできない(表示のみ)とすることができます。

コード量も少なくほとんどの場合はこれで問題ありませんが、IEでは対応していないバージョンのブラウザもあるようなのでJSで無効化にすることも可能です。

 

PCでの無効化をJSでする方法

var ua = navigator.userAgent.toLowerCase();
var isMobile = /iphone/.test(ua)||/android(.+)?mobile/.test(ua);

if (!isMobile) {
    $('a[href^="tel:"]').on('click', function(e) {
        e.preventDefault();
    });
}

JSではユーザーが何の端末からページを閲覧しているかを取得し、スマートフォンであれば電話可、PCであれば電話不可と設定しています。

しかしこの方法だと、PC閲覧時でもaタグのリンクの効果は残っていますので、マウスオーバーした際にカーソルがポインターになってしまいます。

ですのでPCのCSSに【cursor: default;】を追記してあげましょう。

 

個人的にはIEはほとんどカバーしていないですが…

当たり前のように使っている機能ですが、いざ自分で書こうとしてみると色々な書き方がありますね。

私はIEをそこまで敏感にフォローはしていないのですが、クライアントや案件によってはJSで一手間かけて書くこともあります。

その時のテンプレートとしてメモしておきます。

マレーシアの日系IT企業で働く30代のウェブエンジニアの備忘録ブログです。

基本は過去わからなくて悩んだコーディングや諸々の設定方法などをメモ代わりに書き留めています。

ウェブコーディングやワードプレスの勉強中の方や同じ問題で悩んでいる方のお力になれたら嬉しいです。

ウェブサイトの制作依頼をマレーシアのローカル企業にご依頼されて大変な思いをしたことはございませんか?

安価が魅力のマレーシア企業ですが、お国柄どうしても…
「期日を守らない」「連絡がおろそか」「上手くコミュニケーションが取れない」
などのお悩みをかかえることがあると思います。

かと言って日系の企業はマレーシアの企業よりも値が張るため予算的に合わない。

私もマレーシアで働くからこそ、その大変さを理解した上でご提案があります。