Web View サンプルプログラム

iPhoneアプリに Web View を追加するサンプルプログラム(ダウンロード可)です。
Web View 機能に特化しているので、必要なコードがわかりやすくなっています。
プログラム動作説明

特定のWebページを表示するプログラムです。中身をブラウズすることもできます。
picaudio proのボタンを押すと、本サイトのホームページを表示します。
「進む」ボタンと「戻る」ボタンが用意されています。


これがサンプルアプリを起動すると表示される画面です。下のツールバーに左右方向の矢印ボタンと、「picaudio pro」ボタンがあり、「picaudio pro」ボタンを押すとこのサイトのホームページが表示されます。

簡易Webブラウザとしても使え、左矢印ボタンを押すと前のページを表示し、右矢印ボタンを押すと次のページを表示します。表示するページがない場合は、これらのボタンは押せない状態になります。



プログラムのキーポイント解説

UIWebViewDelegate プロトコルの採用

@interface WebViewViewController : UIViewController <UIWebViewDelegate> {

    IBOutlet UIWebView *picaWebView;

    IBOutlet UIBarButtonItem *fBarButton;

    IBOutlet UIBarButtonItem *bBarButton;

}


- (IBAction)openButtonPress:(id)sender;

- (IBAction)forwardButtonPress:(id)sender;

- (IBAction)backButtonPress:(id)sender;


@end




WebView の初期設定

- (void)viewDidLoad {

    [super viewDidLoad];


    ページをWebViewのサイズに合わせて表示するよう設定

    picaWebView.scalesPageToFit = YES;

    picaWebView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);


    WebViewdelegate先のオブジェクトを指定

    picaWebView.delegate = self;


    「進む」、「戻る」ボタンを無効化する。

    bBarButton.enabled = NO;

    fBarButton.enabled = NO;

}




URLを開く
次のページ/前のページ

指定されたURLのページをWebViewに表示する。

- (IBAction)openButtonPress:(id)sender{

    [picaWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://sites.google.com/site/propicaudio/"]]];

}


次のページを表示する。

- (IBAction)forwardButtonPress:(id)sender{

    [picaWebView goForward];

}


前のページを表示する。

- (IBAction)backButtonPress:(id)sender{

    [picaWebView goBack];

}




ロード中インジケーターの表示/非表示
エラー発生時の詳細表示

- (void)webViewDidStartLoad:(UIWebView *)webView {

    ページのロードが開始されたので、ステータスバーのロード中インジケータを表示する。

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

}



- (void)webViewDidFinishLoad:(UIWebView *)webView {

    ページのロードが終了したので、ステータスバーのロード中インジケータを非表示にする。

    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;


    ページの「進む」および「戻る」が可能かチェックし、各ボタンの有効/無効を指定する。

    bBarButton.enabled = [webView canGoBack];

    fBarButton.enabled = [webView canGoForward];

}



- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {

    エラーが発生したので、ステータスバーのロード中インジケータを非表示にする。

    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;


    ロードキャンセルエラーの場合はエラー処理を行わない。

    ページのロード途中に別のページを表示しようとした場合でも、このエラーが発生するが、

    アプリの操作はそのまま続行できるため、エラー処理は行わない。

    if ([error code] != NSURLErrorCancelled) {

        エラーの内容をWebView画面に表示する。

        NSString* errString = [NSString stringWithFormat:

                               @"<html><center><font size=+7 color='red'>エラーが発生しました。:<br>%@</font></center></html>",

                               error.localizedDescription];

        [webView loadHTMLString:errString baseURL:nil];

    }

}





サンプルプログラム

下の画面をクリックするとサンプルプロジェクトをダウンロードできます。



参考資料



その他のサンプルプログラム


Comments