2014年8月29日金曜日

UIWebViewとアプリの連携


UIWebViewDelegateの shouldStartLoadWithRequest を使ったアプリとの連携例を、先日アップした"UIWebViewで閲覧中のページ内の検索"に追加しました。
サンプルコードダウンロード: TheSearcher2

shouldStartLoadWithRequestはページ移動が発生したときに呼ばれ、基本的には移動を許すかどうかを判断するものですが、ここでアプリの処理を追加することができます。

リンク先のURLをrequestから取得し、それに基づいて処理を行います。
TheSearcher2にhashとprotocolを利用してアプリへの処理要求かどうかを判断し、JavaScriptでUIWebViewに表示する例を加えてあります。

・アイコンイメージをタップ
protocol=file://でurl末尾が".png"
アイコンイメージをstringByEvaluatingJavaScriptFromStringで切替

・"Home Directory"をタップ
protocol=file://でhash="#homedir"
NSHomeDirectory()内のフォルダ一覧を作成し、stringByEvaluatingJavaScriptFromStringでdirDiv内に表示。
各フォルダの情報は<a>タグに設定、hrefにフルパスをセット。
protocolは"filename://"とする。

・フォルダ一覧のリンクをタップ
protocol="filename://"
パス内のファイル、フォルダ一覧をstringByEvaluatingJavaScriptFromStringでdirDiv内に表示。

上記の場合に、NOを返し、ページ移動はキャンセルする。







0 件のコメント: