【ReactNative】WebViewを使ってブラウザを表示してみた
本記事の内容
  • アプリにブラウザやyoutubeのWebページを表示させたい
  • webViewコンポーネントの実装方法を知りたい

と言う方に向けて記事を書いていきます。

本記事を読むことで、このように実装することができるようになります。
◯実装機能
・ブラウザ画面を表示
・ローディング画面を表示
・戻るボタン
・進むボタン



1. 概要

今回は、WebViewコンポーネントについて紹介していきます。

WebViewコンポーネントとは?

アプリにwebページ(ブラウザやyoutubeなど)を表示させることができるコンポーネントです。

公式ドキュメント: WebView

2. パッケージのインストール

前回までは、react-nativeからWebViewをインポートすることで、WebViewコンポーネントを使うことができていたのですが、現在は、react-native-webviewライブラリからインストールすることになりました。

以下のコマンドでreact-native-webviewライブラリをインストールします。


本記事では、’react-native-elements’ライブラリを使って、ヘッダーを実装しますので、以下のコマンドを実行して’react-native-elements’ライブラリもインストールしてください。

3. 使い方

3.1 インポート

‘react-native-webview’;ライブラリからWebViewコンポーネントをインポートします。

3.2 サンプルコード



4. サンプルコードについて解説

まず、WebViewコンポーネントのプロパティ、メソッドについて一部紹介します。

4.1 WebViewコンポーネント
プロパティ及びメソッド

WebViewコンポーネント

WebViewコンポーネントのプロパティとメソッドについて一部紹介していきます。
主に以下に記載してある情報を使うことで、ブラウザを表示、イベント設定することができます。
プロパティ
source uriを指定することで指定したページを表示することができる
style ブラウザ表示画面のスタイル
startInLoadingState WebViewが最初のロードでロードビューを強制的に表示するブール値。
renderLoading 読み込みインジケーターを返す関数。startInLoadingStateにTrueを設定する必要あり
メソッド
goForward() Webビューの履歴で1ページ進む
goBack() Webビューの履歴で1ページ戻る
reload() 現在のページを再読み込む
stopLoading() 現在のページの読み込みを停止する

もっと詳しく知りたいと言う方は、以下に公式ドキュメントのリンクを貼っておきますので、そちらをご覧ください。
公式付ドキュメント:WebView



次に機能について以下の順で解説していきます。

  • Webページの表示
  • ローディング画面
  • 戻るボタン
  • 進むボタン

4.2 Webページの表示

Webページの表示は、 sourceプロパティに表示させたいURLを設定するだけで、表示させることができます。


4.3 ローディング画面

アプリでローディングに時間のかかる際、ユーザーにローディング中であることを知らせる為にローディング画面を表示させます。

ActivityIndicatorコンポーネント

ActivityIndicatorコンポーネントを使うことでローディング画面を実装することができます。
公式ドキュメント:ActivityIndicator


<WebView>コンポーネントの renderLoadingプロパティに<ActivityIndicator>コンポーネントを設定することで、読み込み中にローディング画面を表示することができます。

※ただし、renderLoadingプロパティを使うときは、startInLoadingStateプロパティを”true”にする必要があります。



4.4 戻るボタン

戻るボタンを実装する為には、 WebViewのrefとgoBack()メソッドを紐付ける ことで実装することができます。

4.5 進むボタン

進むボタンを実装する為には、 WebViewのrefとgoForward()メソッドを紐付ける ことで実装することができます。



5. まとめ

今回は、WebViewを使ってWebページの表示方法について紹介しました。
Webページは、WebViewコンポーネントを使うことで簡単に表示させることができますのでオススメのコンポーネントです。