iPhoneアプリ開発 -WebViewで表示しているページで特定のリンククリック時の動作を変える-

公開日: : iPhone, IT


 やりたいこと

UIWebViewでWebページを表示し、特定のリンクをクリックした際には別処理をおこないたい。

例)

  • 自身で用意したサイトを表示
  • 特定のリンク先の場合はアプリ内ではなくSafariを起動し表示

 どんな時に?

アプリに「お知らせ」という箇所を用意した場合、「お知らせ」の内容は定期的に変える可能性があるため、Webサイトを表示したいというケースがよくあります。
その時に、「お知らせ」にあるページへのリンクがあったとしても、アプリ内のWebViewで表示されてしまいます。
それが良いケースもありますが、Safariで開いてほしいというケースもあります。

 やったこと

(1)
最初に、UIWebviewのdelegateをselfにしておきます。

(2)
「webView:shouldStartLoadWithRequest:navigationType:」を利用します。

navigationTypeにユーザーがおこなった動作が含まれます。
定義されているのは以下になります。

  • UIWebViewNavigationTypeLinkClicked
  • UIWebViewNavigationTypeFormSubmitted
  • UIWebViewNavigationTypeBackForward
  • UIWebViewNavigationTypeReload
  • UIWebViewNavigationTypeFormResubmitted
  • UIWebViewNavigationTypeOther

今回のユーザーがリンクを触ったという動作の場合は、以下になります。

  • UIWebViewNavigationTypeLinkClicked

というわけで、以下の様な感じで実装できます。

上記の場合、タッチしたリンク先が「http://example.com」だった場合はブラウザで起動するようになっています。
また、「return NO」にすることにより、そのWebページをWebViewで表示しないようにしています。

 参考

広告

関連記事

mixisample

iPhoneアプリ開発 -mixiSDKを使ってmixi連携をしてみる(1)-

* やりたいこと iPhoneアプリでmixiと連携し、mixiボイスなどに文字を投稿する。 ※

記事を読む

no image

iPhoneアプリを開発してての疑問 -教えてエライ人!-

MacでiPhoneアプリを開発してて疑問に思ったのの解決してないことを列挙。 知識不足をさらけ出し

記事を読む

no image

MySQLのバックアップ手順 -消えたら困るものはバックアップ-

そろそろデータが消えてもらったら困るぐらいになっていたのでバックアップをとることにしました。 とい

記事を読む

no image

iPhoneアプリ開発 −タッチで線を描く(2)/枠線を描く−

* 前回までのお話 * やりたいこと 今回やりたいことは以下の2点。 -(1) 画面をタッチして

記事を読む

popup

jQuery Mobile1.2のPopupを試してみた -写真を表示-

jQuery Mobile1.2の「Popup」を試してみました。 他の機能である「Collaps

記事を読む

no image

Androidアプリ開発 -リストをタッチして別ページ表示-

* 前提 -「設定画面」で各種項目を設定。 --Activity:ConfigActivity --

記事を読む

no image

iPhoneアプリ開発 -Bundle identifierを変えてはまった-

* 現象 Bundle identifierを変えた際にXcodeで実機に転送しようとすると以下のエ

記事を読む

iPhoneアプリ開発 芳名帳アプリ作成(5) -ペンサイズと入力エリア数の設定-

* 今までの流れ - -[http://pplace.jp/2013/06/1531/:titl

記事を読む

no image

mailtoリンクの件名や本文の文字化け -N-02Aのケース-

* mailtoリンクの仕様 携帯電話用のWebサイトではmailtoリンクを使うことが多いと思い

記事を読む

no image

PhoneGapを触ってみた(2) -実機でテスト編-

* 今までの流れ - * 自分の端末で動かしてみよう 今回は、PhoneGapで作成したアプリを実

記事を読む

広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

広告

no image
[感想] Effective Objective-C 2.0 ☆☆☆☆★(4.5)

* 構成 - 第1章 Objective-Cに慣れる -

no image
[感想] iOSアプリテスト自動化入門 ☆☆☆(3.0)

* 構成 - Chapter 1 テスト自動化への取り組み

DeployGateを試してみた(iOS編) -DeployGateがiOSに対応-

今までのDeployGate - -[http://pplace.

iPhone/iPadアプリを開発するためにやったこと

今までに、iPhoneを3本ほどリリース((リリースしたアプリは全て1

no image
ターミナルでgitのコマンドを補完したりブランチ名を表示する – macでgitを便利に使うために –

* やりたいこと macのターミナルでgitをいじっていると -今の

→もっと見る

PAGE TOP ↑