[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が設定されています。
 

 
ビルドして実行すると

 

誤字脱字、意味不明などのご意見は まで
ブックマークしておくと便利です このエントリーをはてなブックマークに追加




ページのトップへ戻る

シェアする

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

フォローする