浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【React Native】「react-native-webview」ライブラリを使ってWebViewを実装する

今回は、React Native で WebView を実装する方法についてです。
私は「react-native-webview」というライブラリを使いました。
GitHub のページはこちら。

GitHub – react-native-webview/react-native-webview: React Native Cross-Platform WebView
https://github.com/react-native-webview/react-native-webview

シンプルでわかりやすいライブラリなのでおすすめです。

 

ライブラリのインストールは下記のコマンドで行います。

npm install --save react-native-webview

// iOS の場合は下記も実行
npx pod-install

上記が終わったら準備は完了です。

あとは、WebView を実装したいページに下記のように記述していきます。

import { WebView } from 'react-native-webview';

<WebView
  source={{ uri: '開きたい Web ページの URL' }}
  scalesPageToFit={false}
  onLoadEnd={() => this.setState({ isLoading: false })} />

なお、Android の場合は scalesPageToFit={false} を追加しておくことをお勧めします。
こちらは Web コンテンツを画面に合わせて拡大縮小するかどうかを制御できるのですが、こちらの値が true だと、ページの文字サイズが小さくなってしまいとても見にくかったです。
もちろん、表示する Web ページによっては、デフォルト値の true でも問題ない場合があると思いますが、もしコンテンツが小さすぎて見にくい時はこちらをお試しください。

また、上記コードでは読み込みが完了した時に実行される onLoadEnd も定義しています。
読み込みが完了したら stateisLoading の値を false にし、読み込み中のローディングアイコンを非表示にするという処理を行なっています。
実際に実装して思ったのですが、個人的にやはりローディングアイコンはあったほうが良いです。
読み込み中など、今何をしているのかがわかる状態の方が、読み込みが終わるまで待てるような気がします。

なお、他にも使用できる API リファレンスの一覧はこちらから確認できます。

react-native-webview/Reference.md at master · react-native-webview/react-native-webview · GitHub
https://github.com/react-native-webview/react-native-webview/blob/master/docs/Reference.md

今回は実装しませんでしたが、pullToRefreshEnabled という、iOS でページを引っ張ってリロードを有効にすることもできます。
他にも 位置情報を有効にする geolocationEnabled やユーザーエージェントを指定したりもできるので、一度ご確認ください。

 

以上、React Native の「react-native-webview」ライブラリを使って WebView を実装する方法についてでした。
ご参考になれば幸いです。

  • この記事いいね! (0)