.. -*- Mode: rst; fill-column: 80; -*- Getting Started with GeckoView ###################################### How to use GeckoView in your Android app. *Building a browser? Check out* `Android Components `_, *our collection of ready-to-use support libraries!* The following article is a brief guide to embedding GeckoView in an app. For a more in depth tutorial on getting started with GeckoView please read the article we have published on `raywenderlich.com `_. .. contents:: :local: Configure Gradle ================= You need to add or edit four stanzas inside your module's ``build.gradle`` file. **1. Set the GeckoView version** *Like Firefox, GeckoView has three release channels: Stable, Beta, and Nightly. Browse the* `Maven Repository `_ *to see currently available builds.* .. code-block:: groovy ext { geckoviewChannel = geckoviewVersion = } **2. Add Mozilla's Maven repository** .. code-block:: groovy repositories { maven { url "https://maven.mozilla.org/maven2/" } } **3. Java 17 required support** As GeckoView uses some Java 17 APIs, it requires these compatibility flags: .. code-block:: groovy compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } **4. Add GeckoView Implementations** .. code-block:: groovy dependencies { // ... implementation "org.mozilla.geckoview:geckoview-${geckoviewChannel}:${geckoviewVersion}" } Add GeckoView to a Layout ========================== Inside a layout ``.xml`` file, add the following: .. code-block:: xml Initialize GeckoView in an Activity ==================================== **1. Import the GeckoView classes inside an Activity:** .. code-block:: java import org.mozilla.geckoview.GeckoRuntime; import org.mozilla.geckoview.GeckoSession; import org.mozilla.geckoview.GeckoView; **2. Create a ``static`` member variable to store the ``GeckoRuntime`` instance.** .. code-block:: java private static GeckoRuntime sRuntime; **3. In that activity's** ``onCreate`` **function, add the following:** .. code-block:: java 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... You're done! ============== Your application should now load and display a webpage inside of GeckoView. To learn more about GeckoView's capabilities, review GeckoView's `JavaDoc `_ or the `reference application `_.