Mobile/GeckoView: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 9: Line 9:
== Using GeckoView ==
== Using GeckoView ==


# Download a recent GeckoView AAR from treeherder (mozilla-central tree). The AAR is available from the 'Android API16+ Gradle opt' job under the 'Bng' symbol. After clicking that, there is a link to 'geckoview-0.0.1.aar' in the bottom pane.
# Add Nightly taskcluster repo to your build.gradle
# Add the GeckoView AAR to your Gradle / Android Studio project. In Android Studio you can add the .aar as follows:
 
## Move the geckoview aar to your project's 'app/libs' folder.
<pre>
## Use the 'New Module' option under the 'File' menu.
repositories {
## Import the .aar file.
    maven {
## Add the new GeckoView AAR module as a dependency to the application.
      url 'https://index.taskcluster.net/v1/task/gecko.v2.mozilla-central.nightly.latest.mobile.android-api-16-opt/artifacts/public/android/maven'
    }
}
</pre>
 
# Add geckoview to dependencies
 
Again, in build.gradle
 
<pre>
dependencies {
    compile 'org.mozilla:geckoview-nightly-armeabi-v7a:+'
}
</pre>
 
This will always use the latest Nightly in the repository. As GeckoView development continues, we will have Beta and Release repositories that have the expected version names (61.0.0, etc).
 
 
# Using GeckoView


You can now use GeckoView your app by including the following in a layout XML file:
You can now use GeckoView your app by including the following in a layout XML file:
Line 28: Line 46:


<pre>
<pre>
// Find the GeckoView in our layout
onCreate(...) {
GeckoView geckoView = (GeckoView) findViewById(R.id.geckoview);
    // Find the GeckoView in our layout
    GeckoView geckoView = (GeckoView) findViewById(R.id.geckoview);


// Attach the GeckoView to a new GeckoSession
    // Attach the GeckoView to a new GeckoSession
GeckoSession session = new GeckoSession();
    GeckoSession session = new GeckoSession();
geckoView.setSession(session);
    geckoView.setSession(session);


// Load a URL
    // Load a URL
session.loadUri("http://mozilla.com");
    session.loadUri("http://mozilla.com");
}
</pre>
</pre>



Revision as of 19:29, 22 March 2018

What is GeckoView

GeckoView is an Android library project that allows third-party developers to use Gecko as an Android View in their own applications. GeckoView is similar to Android's built in WebView, but it is not a drop in replacement for WebView.

Note that GeckoView is NOT ready to be used in a production environment. It is currently possible to load pages and do some basic stuff, but features are limited.

Current API documentation can be viewed here: https://mozilla.github.io/geckoview/javadoc/mozilla-central/

Using GeckoView

  1. Add Nightly taskcluster repo to your build.gradle
repositories {
    maven {
       url 'https://index.taskcluster.net/v1/task/gecko.v2.mozilla-central.nightly.latest.mobile.android-api-16-opt/artifacts/public/android/maven'
    }
}
  1. Add geckoview to dependencies

Again, in build.gradle

dependencies {
    compile 'org.mozilla:geckoview-nightly-armeabi-v7a:+'
}

This will always use the latest Nightly in the repository. As GeckoView development continues, we will have Beta and Release repositories that have the expected version names (61.0.0, etc).


  1. Using GeckoView

You can now use GeckoView your app by including the following in a layout XML file:

<org.mozilla.gecko.GeckoView
  android:id="@+id/geckoview"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content" />

You can then load a page in your code with:

onCreate(...) {
    // Find the GeckoView in our layout
    GeckoView geckoView = (GeckoView) findViewById(R.id.geckoview);

    // Attach the GeckoView to a new GeckoSession
    GeckoSession session = new GeckoSession();
    geckoView.setSession(session);

    // Load a URL
    session.loadUri("http://mozilla.com");
}

Example App

Firefox Focus has a build variant that uses Gecko. To build, check out the Focus code from https://github.com/mozilla-mobile/focus-android and follow the instructions. The only difference is you need to select one of the Gecko build variants from the Android Studio 'Build' menu.

The Gecko-related code for Focus lives in WebViewProvider.java

Bugs

Klar Blockers

  • P1 [geckoview:klar] bugs:

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


  • Other GeckoView P1 bugs:

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Klar Backlog

  • P2-P3 [geckoview:klar] bugs:

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Klar Unprioritized

  • Unprioritized [geckoview:klar] bugs:

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Crow Bugs

  • All [geckoview:crow] bugs:

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Other GeckoView Bugs