GeckoView 入门

如何在您的 Android 应用中使用 GeckoView。

正在构建浏览器?请查看 Android 组件,我们的一系列即用型支持库!

以下文章是将 GeckoView 嵌入应用的简要指南。有关 GeckoView 入门的更深入教程,请阅读我们在 raywenderlich.com 上发布的文章。

配置 Gradle

您需要在模块的 build.gradle 文件中添加或编辑四个部分。

1. 设置 GeckoView 版本

与 Firefox 一样,GeckoView 有三个发布渠道:稳定版、测试版和夜间版。浏览 Maven 仓库 以查看当前可用的版本。

ext {
    geckoviewChannel = <channel>
    geckoviewVersion = <version>
}

2. 添加 Mozilla 的 Maven 仓库

repositories {
    maven {
        url "https://maven.mozilla.org/maven2/"
    }
}

3. Java 17 兼容性支持

由于 GeckoView 使用了一些 Java 17 API,因此需要这些兼容性标志

compileOptions {
    sourceCompatibility JavaVersion.VERSION_17
    targetCompatibility JavaVersion.VERSION_17
}

4. 添加 GeckoView 实现

dependencies {
    // ...
  implementation "org.mozilla.geckoview:geckoview-${geckoviewChannel}:${geckoviewVersion}"
}

将 GeckoView 添加到布局

在布局 .xml 文件中,添加以下内容

<org.mozilla.geckoview.GeckoView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/geckoview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

在 Activity 中初始化 GeckoView

1. 在 Activity 中导入 GeckoView 类

import org.mozilla.geckoview.GeckoRuntime;
import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoView;

2. 创建一个 ``static`` 成员变量来存储 ``GeckoRuntime`` 实例。

private static GeckoRuntime sRuntime;

3. 在该 Activity 的 onCreate 函数中,添加以下内容:

GeckoView view = findViewById(R.id.geckoview);
GeckoSession session = new GeckoSession();

// Workaround for Bug 1758212
session.setContentDelegate(new GeckoSession.ContentDelegate() {});

if (sRuntime == null) {
  // GeckoRuntime can only be initialized once per process
  sRuntime = GeckoRuntime.create(this);
}

session.open(sRuntime);
view.setSession(session);
session.loadUri("about:buildconfig"); // Or any other URL...

4. 将 windowSoftInputMode 设置为 adjustResize 以支持 交互式小部件

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <activity android:name=".YourActivity"
              android:windowSoftInputMode="stateUnspecified|adjustResize" />
</manifest>

搞定!

您的应用程序现在应该可以在 GeckoView 中加载并显示网页。

要了解有关 GeckoView 功能的更多信息,请查看 GeckoView 的 JavaDoc参考应用程序