Mobile/GeckoView: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 31: Line 31:
== Example App ==
== Example App ==


The example app is a bare bones Android app that uses GeckoView. Clone the [https://github.com/mfinkle/geckobrowser GeckoBrowser] repository and follow the instructions above to add the GeckoView library to the app. Alternatively, you can use [https://github.com/fred-wang/geckobrowser this fork], which allows to download the dependencies and build the GeckoBrowser app "à la make".
Firefox Focus has a build variant that uses Gecko. To build, check out the Focus code from <code>https://github.com/mozilla-mobile/focus-android</code> and follow the [https://github.com/mozilla-mobile/focus-android/blob/master/README.md instructions]. The only difference is you need to select one of the Gecko build variants from the Android Studio 'Build' menu.


When running, it looks as such:
The Gecko-related code for Focus lives in [https://github.com/mozilla-mobile/focus-android/blob/90bf62d89919d5ae2d8bd95954491264dcbe1bba/app/src/gecko/java/org/mozilla/focus/web/WebViewProvider.java WebViewProvider.java]
 
[[File:Geckoview_example.png|400px]]


== Known Issues ==
== Known Issues ==

Revision as of 18:20, 30 June 2017

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 webpages, but that's about it. See bug 1322573.

Using GeckoView

  1. Download a recent GeckoView AAR from treeherder (mozilla-central tree). The AAR is available from the 'Android API15+ Gradle opt' job under the 'Bg' symbol. After clicking that, there is a link to 'geckoview-0.0.1.aar' in the bottom pane.
  2. Add the GeckoView AAR to your Gradle / Android Studio project. In Android Studio you can add the .aar as follows:
    1. Move the geckoview aar to your project's 'libs' folder.
    2. Use the 'New Module' option under the 'File' menu.
    3. Import the .aar file.

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:

GeckoView geckoView = (GeckoView) findViewById(R.id.geckoview);
geckoView.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

Known Issues

Asset Compression - bug 908929

GeckoView assets (.so's) should not be compressed in final APK's built by 3rd-party developers. This may cause problems in some cases. See bug 908929.