強火で進め このページをアンテナに追加 RSSフィード

整理された情報は こちら へどうぞ。

2011年04月30日

[]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電話番号
UIDataDetectorTypeLinkaタグなどでのリンクでは無く通常のテキスト部分に記載されたURLやメールアドレス
UIDataDetectorTypeAddress住所
UIDataDetectorTypeCalendarEventカレンダーイベント
UIDataDetectorTypeNoneリンク化しない
UIDataDetectorTypeAll全てリンク化

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

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

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

f:id:nakamura001:20110430123545p:image

なお、 UIDataDetectorTypeNone を設定したとしてもaタグのリンクなどが無効化する事は有りません。

あくまで通常のテキスト部分をリンク化させたり、させなかったりする動作となります。

投稿したコメントは管理者が承認するまで公開されません。

トラックバック - http://d.hatena.ne.jp/nakamura001/20110430/1304134585
リンク元