[iPhone] Web ブラウザを作る(Objective-C)

アプリ申請において、ブラウザは注意が必要なので調べてみました。UIWebViewで適当に作るとRejectになり易いようです。
尚、Swiftのケースはこちらです
 

Objective-C
Xcode 8.2.1

UIApplication クラスを使って Safari に頼む

 
方法としてはこの2つがあります。

  1. Safariに飛ばす
  2. 自前でブラウザーを作る

UIApplication クラスを使って Safari に頼む

 
Safari に代行してもらうという安易ですが安全かもしれない方法です。
アプリからちょっとWeb アクセスしたいだけなのに、「戻る」だの、「ダウンロード中」の表示だの考えなくていいので簡単です。
その辺適当にやると Apple から Regect くらうそうです。

UIApplicationのsharedApplicationを使います。
openURL:メソッドが iOS10から非推奨になったようで代わりにこれを使えとワーニングが出るようになりました。
openURL:options:completionHandler:

ViewController.m

 
コードはこれだけです。
 
ただし、Safari で Web に移動した後は、自分のアプリにはもどれません。
 

UIWebView クラスを使う

 
こちらも UIWebView をつかえば簡単にブラウザはできます。
 
UIWebViewDelegate をセットします。
ViewController.h

 
ViewController.m

 
これで、ビルドして実行すれば、指定のURLにとびます。
 

goBack, refresh 機能を追加

 
ナビゲーションバーとバーボタンで
「戻る」や「リロード」を入れたいと思います。
Web View を画面いっぱいにのせます。
 

 
Navigation bar を Web View の上に配置する
 

 
その Navigation Bar に Bar Button を2つ左右に置く
 

 
Bar Button の右側を選択してインスペクターの Attributes にある Identifier をCustom から Refresh に設定します。
 

 
同様に、もう一つは Rewind を設定
 

 
Storyboardはこれで出来上がりです。
 

 
このような配置となります。
 
コードは多少修正が必要です
ViewController.h

ViewController.m

 
storyboad上のパーツと紐付けをします。
例えばBar ButtonのRewindの紐付けは
WebViewのgoBackにつなぎます
 

 
Sent ActionsにgoBackが設定されています。
 

 
ビルドして実行すると

 


ページのトップへ戻る

シェアする

  • このエントリーをはてなブックマークに追加

フォローする