強火で進め

このブログではプログラム関連の記事を中心に書いてます。

UIWebViewでの自動リンク化の制御

iPhoneSafariでは電話番号っぽい数字の並びが有った時に自動的にリンク化されます。

こちらについては以下のmetaタグを記述する事でこの処理を行わない様にする事が可能です。

<meta name="format-detection" content="telephone=no" />

しかし、UIWebViewではこのタグは無視されリンク化が行われます。

UIWebViewではUIWebViewのプロパティ dataDetectorTypes でリンク化の制御を行います。

例えば意図しないリンクを全て行わない様にするには以下の様にします。

webView_.dataDetectorTypes = UIDataDetectorTypeNone;

電話番号のみリンク化したい場合はこの様に指定。

webView_.dataDetectorTypes = UIDataDetectorTypePhoneNumber;

| 区切りで複数指定する事も可能です。

webView_.dataDetectorTypes = UIDataDetectorTypePhoneNumber | UIDataDetectorTypeAddress;
定数 リンク化する対象
UIDataDetectorTypePhoneNumber 電話番号
UIDataDetectorTypeLink aタグなどでのリンクでは無く通常のテキスト部分に記載されたURLやメールアドレス
UIDataDetectorTypeAddress 住所
UIDataDetectorTypeCalendarEvent カレンダーイベント
UIDataDetectorTypeNone リンク化しない
UIDataDetectorTypeAll 全てリンク化

住所については細かい所まで指定をしないとダメみたいです。

例えば東京タワーの住所で有る 東京都港区芝公園4-2-8 でテストした所、以下の様になりました。

指定した文字列 リンク化
東京都港区芝公園4-2-8
東京都港区芝公園4-2
東京都港区芝公園4
東京都港区芝公園 ×
東京都港区 ×
東京都 ×

なお、 UIDataDetectorTypeNone を設定したとしてもaタグのリンクなどが無効化する事は有りません。
あくまで通常のテキスト部分をリンク化させたり、させなかったりする動作となります。