アンドロイドスタジオでアプリを作るときは、情報系のアプリであれば、HTMLを表示するWebViewを入れて、HTMLページの推移で見せると楽です。
WebViewの利用
現在最もよく使われているであろうHTMLの表示のためのコンポーネントです。
準備
ネット接続の許可が必要。
「manifests>AndroidManifest.xml」でネット接続に許可を行う「<uses-permission android:name="android.permission.INTERNET" />」を追加して保存します。
コンポーネントをレイアウトに入れておきます。
WidgetにあるWebviewをレイアウトへドラッグ。IDを「webview1」などにします。
webviewの設定は
<WebView
android:id="@+id/webview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteX="1dp"
tools:layout_editor_absoluteY="1dp" />
のようにし、上下左右は自動で調節するようにしておきます。
スクリプト
on createに
static final String URL = "https://google.com";
private WebView webView;webView = (WebView) findViewById(R.id.webview1);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl(URL);
を追加して指定ページが表示されればOK。
リソースのHTMLを使う
リソースのHTMLを表示させるには、
「app>new>folder>assets folder」でアセットフォルダを追加。
既成のファイルをドロップしようとしたらうまくいかず。
そこに新規ファイル「top.html」のようなものを作成してHTMLを記述します。
最後にプログラム内のURLを「val URL ="file:///android_asset/top.html"」のように指定します。
グーグルマップの地図の埋め込みは一応できそうです。
外へのリンクは普通にジャンプできました。
リソース内のファイルのリンクですが、リソース名を「****.html」にしておけば、その名前への移動でちゃんとジャンプできました。
スクロールバー
「fadeScrollbars」を「false」にすると常時表示。
Javascriptと連携
Javascriptからアンドロイド側へアクセスできます。
やり方は以下。
WebView でのウェブアプリの作成 | Android デベロッパー | Android Developers
外部ブラウザを開く
イベントをOverwriteし特定のURLの場合の処理を記述するといいようです。
WebViewから外部ブラウザを起動する時のActivityNotFoundException - Qiita
WebViewの不具合
ERR_CLEARTEXT_NOT_PERMITTED?
WebViewでハイパーリンクを押したら出たエラー。
HTTPS化していないサイトに出るので、HTTPS化したリンクを指定しましょう。