UIWebViewでの自動リンク化の制御
iPhoneのSafariでは電話番号っぽい数字の並びが有った時に自動的にリンク化されます。
こちらについては以下の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タグのリンクなどが無効化する事は有りません。
あくまで通常のテキスト部分をリンク化させたり、させなかったりする動作となります。