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で表示しないようにしています。

 参考

広告

関連記事

no image

jQuery Mobile導入手順 -はじめの一歩-

jQuery Mobileの1.0がリリースされ、利用したい方が増えていると思います。 最初に何を

記事を読む

no image

iPhoneアプリ開発 -背景画像をiPhone5対応してみた-

* やりたいこと iPhone5は今までと異なり高さが違います。 その結果、背景画像によっては良い感

記事を読む

no image

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

* 前回 は、「ユーザーにAPI利用のための認可」をおこなってもらうところまでやりました。 本エン

記事を読む

no image

iPhoneアプリ開発 -利用するべきサービス-

iPhone(iOS)アプリ開発において使っているサービスを列挙。 この手のサービスがないと、開発中

記事を読む

構成

定期的にデータ取得のためにCakePHP1.3でシェル機能を利用

定期的にデータを取得する行為をするために、はじめてシェル機能を使ってみたのでメモ。 * ス

記事を読む

no image

TestLink1.91のバグの修正方法

どうやらTestLink1.91にはバグがあるようなので、修正方法を以下に記述。 Test

記事を読む

no image

jQuery Mobileでdata-role=headerを使うときの注意点 -勝手にタイトルが変更される件-

* 現象 +headタグでtitleタグで文字列(A)を記述している +data-role=he

記事を読む

no image

ヘルプ作成で思ったWebサービスの3つの心得 -短文の教え-

最近ヘルプを作って思った3つのこと。 * 1文に複数の内容を書かない 1文に複数の内容を書いてい

記事を読む

no image

第二回Androidテスト祭り参加記録 -祭りに参加してきたよ-

久しぶりに勉強会に参加してきました。 参加してきたのは「第二回Androidテスト祭り(4/28)

記事を読む

no image

CakePHP1.3にSmartyを導入

いい加減、CakePHP(1.3)にもSmartyを導入することにしました。 * ダウンロード

記事を読む

広告

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 ↑