Android
 Computer >> コンピューター >  >> プログラミング >> Android

AndroidのWebViewからYouTubeアプリ・動画を開く方法を徹底解説!


本記事では、Androidアプリ内のWebViewからYouTubeの動画ページを開く方法について、Android Studioでの具体的な実装手順をサンプルコード付きで分かりやすく解説します。

手順1:Android Studioで新規プロジェクトを作成する

まずはAndroid Studioで新しいプロジェクトを作成しましょう。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力してプロジェクトを生成します。

手順2:activity_main.xmlにWebViewを配置する

続いて、res/layout/activity_main.xmlに以下のコードを記述します。

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
    xmlns:app = "https://schemas.android.com/apk/res-auto"
    xmlns:tools = "https://schemas.android.com/tools"
    android:layout_width = "match_parent"
    android:gravity = "center"
    android:layout_height = "match_parent"
    tools:context = ".MainActivity"
    android:orientation = "vertical">
   <WebView
      android:id = "@+id/web_view"
      android:layout_width = "match_parent"
      android:layout_height = "match_parent" />
</LinearLayout>

このレイアウトでは、縦方向のLinearLayoutの中に、画面全体に広がるWebViewを1つだけ配置したシンプルな構成になっています。このWebViewがYouTubeの動画ページを表示する役割を担います。

手順3:MainActivity.javaにWebViewの処理を実装する

次に、src/MainActivity.javaに以下のコードを追加します。

package com.example.myapplication;
import android.app.ProgressDialog;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
    @RequiresApi(api = Build.VERSION_CODES.P)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.setMessage("Loading Data...");
        progressDialog.setCancelable(false);
        WebView web_view = findViewById(R.id.web_view);
        web_view.requestFocus();
        web_view.getSettings().setLightTouchEnabled(true);
        web_view.getSettings().setJavaScriptEnabled(true);
        web_view.getSettings().setGeolocationEnabled(true);
        web_view.setSoundEffectsEnabled(true);
        web_view.loadUrl("https://www.youtube.com/watch?v=atnyX5yjLj0");
        web_view.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress) {
                if (progress < 100) {
                    progressDialog.show();
                }
                if (progress == 100) {
                    progressDialog.dismiss();
                }
            }
        });
    }
}

このコードのポイントは以下の通りです。

  • ProgressDialogによる読み込み表示 … ページの読み込み中は「Loading Data...」というダイアログを表示し、完了すると自動的に閉じます。
  • JavaScriptの有効化 … setJavaScriptEnabled(true)を呼び出すことで、JavaScriptを使うWebサイト(YouTubeを含む)を正しく表示できます。
  • WebChromeClientによる進捗管理 … onProgressChanged()をオーバーライドし、読み込み進捗が100%未満ならshow()でダイアログを表示、100%に達したらdismiss()で閉じます。

また、loadUrl()には再生したいYouTube動画のURLを指定しています。ここを書き換えれば、任意の動画をアプリ内で表示できるようになります。

手順4:AndroidManifest.xmlに権限を追加する

最後に、AndroidManifest.xmlに以下のコードを記述します。

<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "https://schemas.android.com/apk/res/android"
    package = "com.example.myapplication">
    <uses-permission android:name = "android.permission.INTERNET"/>
    <application
        android:allowBackup = "true"
        android:icon = "@mipmap/ic_launcher"
        android:label = "@string/app_name"
        android:roundIcon = "@mipmap/ic_launcher_round"
        android:supportsRtl = "true"
        android:theme = "@style/AppTheme">
        <activity android:name = ".MainActivity">
            <intent-filter>
                <action android:name = "android.intent.action.MAIN" />
                <category android:name = "android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

特に重要なのが、<uses-permission>タグによる「android.permission.INTERNET」の宣言です。この権限がないとWebViewがネットワーク通信を行えず、YouTubeのページ自体を読み込むことができなくなります。

アプリを実行して動作を確認しよう

それでは、実際にアプリを起動して動きを確認してみましょう。ここでは、実機のAndroidスマートフォンをパソコンに接続していることを前提に説明します。

  1. Android Studioでプロジェクト内のアクティビティファイルを開きます。
  2. ツールバーの「Run(実行)」アイコンをクリックします。
  3. デバイスの選択画面で、接続済みの自分のスマートフォンを選択します。

しばらく待つと、スマートフォン上でアプリが起動し、指定したYouTubeの動画ページがWebView内に表示されます。読み込み中にはプログレスダイアログが表示され、完了すると消えることも確認できます。

AndroidのWebViewからYouTubeアプリ・動画を開く方法を徹底解説!

  1. PCからAndroidアプリをインストールする方法|スマホに触れずにGoogle Play経由で導入

    Webを閲覧中に気になるAndroidアプリを見つけたものの、わざわざ立ち上がってスマホを探し、Google Playストアを開いて検索してインストールするのは面倒だと感じたことはありませんか?実は、PCから直接Androidアプリをインストールすることができます。この記事では、スマホに一切触れることなく新しいアプリをAndroid端末に導入する方法を詳しく解説します。 始める前に確認しておくこと この方法を使うには、PCとAndroidスマホの両方で同じGoogleアカウントにサインインしている必要があります。事前に両端末のアカウントを揃えておきましょう。AndroidでのGoogle

  2. AndroidでYouTubeアプリがクラッシュ・フリーズする問題を解決する9つの方法

    Androidスマートフォンは、数え切れないほどのアプリやゲームが楽しめることから、世界中の多くの人々に愛用されています。その中でも特に人気が高く、ダウンロード数の多いアプリのひとつがYouTubeです。動画の視聴はもちろん、投稿や共有もできるYouTubeは、今や私たちの生活に欠かせない存在となっています。しかし、お気に入りの動画を楽しんでいる最中に突然アプリがクラッシュしたら、非常にストレスですよね。しかも、直し方がわからないとなればなおさらイライラしてしまいます。そこで本記事では、AndroidでYouTubeアプリが正常に動作しない場合の対処法を詳しく解説します。まず知っておきたい:Y