{"id":28154190,"url":"https://github.com/mgks/android-smartwebview","last_synced_at":"2026-02-28T08:38:22.622Z","repository":{"id":17911325,"uuid":"81557006","full_name":"mgks/Android-SmartWebView","owner":"mgks","description":"A simple use webview integrated w/ native features to help build advanced hybrid applications.","archived":false,"fork":false,"pushed_at":"2025-05-11T12:20:26.000Z","size":10014,"stargazers_count":587,"open_issues_count":85,"forks_count":284,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-05-11T13:27:34.680Z","etag":null,"topics":["analytics","android","android-studio","camera-api","chrome","firebase","java","location-tracker","plugins-api","print-preview","pwa","webview"],"latest_commit_sha":null,"homepage":"https://mgks.dev/smart-webview","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mgks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"mgks","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2017-02-10T10:59:02.000Z","updated_at":"2025-05-11T12:20:30.000Z","dependencies_parsed_at":"2022-08-09T09:15:21.759Z","dependency_job_id":"3eab9e70-696d-4e44-99a8-02af86632022","html_url":"https://github.com/mgks/Android-SmartWebView","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgks%2FAndroid-SmartWebView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgks%2FAndroid-SmartWebView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgks%2FAndroid-SmartWebView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgks%2FAndroid-SmartWebView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mgks","download_url":"https://codeload.github.com/mgks/Android-SmartWebView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254283271,"owners_count":22045141,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","android","android-studio","camera-api","chrome","firebase","java","location-tracker","plugins-api","print-preview","pwa","webview"],"created_at":"2025-05-15T06:12:59.771Z","updated_at":"2026-02-28T08:38:22.616Z","avatar_url":"https://github.com/mgks.png","language":"Java","readme":"\u003c!--\n  Smart WebView v8 - The Complete Open Source Edition\n  https://github.com/mgks/Android-SmartWebView\n\n  A modern, open-source WebView wrapper for building advanced hybrid Android apps.\n  Native features, a powerful plugin architecture, and full customisation—built for developers.\n\n  - Documentation: https://mgks.github.io/Android-SmartWebView/documentation\n  - Discussions: https://github.com/mgks/Android-SmartWebView/discussions\n\n  MIT License — https://opensource.org/licenses/MIT\n--\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n  \u003c!-- PROJECT TITLE --\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/mgks/Android-SmartWebView/master/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp\" width=\"150\" alt=\"Smart WebView Logo\"\u003e\n\n  \u003ch1\u003eAndroid Smart WebView\u003c/h1\u003e\n  \n  \u003c!-- ONE LINE SUMMARY --\u003e\n  \u003cp\u003e\n    \u003cb\u003eA clean and modern, open-source solution for building advanced hybrid android apps.\u003c/b\u003e\n  \u003c/p\u003e\n  \n  \u003c!-- BADGES --\u003e\n  \u003cp\u003e\n    \u003cimg alt=\"Language\" src=\"https://img.shields.io/badge/language-Java-red.svg?style=flat-square\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/mgks/android-smartwebview?style=flat-square\u0026color=38bd24\" alt=\"release version\"\u003e\n    \u003c!--\u003cimg src=\"https://img.shields.io/github/stars/mgks/android-smartwebview?style=flat-square\u0026logo=github\u0026color=blue\" alt=\"stars\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/forks/mgks/android-smartwebview?style=flat-square\u0026color=blue\" alt=\"stars\"\u003e--\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/mgks/android-smartwebview.svg?style=flat-square\u0026color=blue\" alt=\"license\"\u003e\n  \u003c/p\u003e\n\n  \u003c!-- MENU --\u003e\n  \u003cp\u003e\n    \u003ch4\u003e\n      \u003ca href=\"http://mgks.github.io/Android-SmartWebView/documentation/\"\u003eDocumentation\u003c/a\u003e • \n      \u003ca href=\"https://github.com/mgks/Android-SmartWebView/discussions\"\u003eDiscussions\u003c/a\u003e • \n      \u003ca href=\"https://github.com/mgks/Android-SmartWebView/issues\"\u003eIssues\u003c/a\u003e\n    \u003c/h4\u003e\n  \u003c/p\u003e\n\n  \u003c!-- PREVIEW --\u003e\n  \u003cp\u003e\n    \u003cimg width=\"850\" alt=\"cover-swv\" src=\"https://github.com/user-attachments/assets/615e82f1-18fe-42a7-bf98-0a4c53660995\" /\u003e\n  \u003c/p\u003e\n\n\u003c/div\u003e\n\n**Android Smart WebView** provides a robust foundation for converting any website into a feature-rich mobile application, complete with a powerful plugin system for extending native functionality.\n\n## Features\n\n*   **Plugin Architecture:** Extend app functionality with self-registering, modular plugins.\n*   **File Uploads \u0026 Camera Access:** Full support for `\u003cinput type=\"file\"\u003e`, including direct camera capture.\n*   **Push Notifications:** Integrated with Firebase Cloud Messaging (requires `google-services.json`).\n*   **Google Analytics:** Built-in support for usage tracking (configure GTAG ID in `swv.properties`).\n*   **Custom UI Modes:** Choose between a fullscreen immersive layout or a standard drawer navigation layout.\n*   **Location Services:** Access device GPS for location-aware web applications.\n*   **Content Sharing:** Natively receive and handle content shared from other apps.\n*   **Downloads \u0026 Printing:** Handle file downloads and print web content using native services.\n*   **Modern \u0026 Secure:** Built with up-to-date libraries, security best practices, and highly configurable via `swv.properties`.\n\n## Quick Start\n\n1.  **Clone the repository:**\n    ```sh\n    git clone https://github.com/mgks/Android-SmartWebView.git\n    ```\n2.  **Open in Android Studio:**\n    *   `File \u003e Open \u003e Select the cloned project folder`\n3.  **Configure `swv.properties`:**\n    *   Open `app/src/main/assets/swv.properties`.\n    *   Change `app.url` to your website's URL and adjust other settings as needed. This is the main configuration file for the app.\n4.  **Add `google-services.json` (Optional):**\n    *   If you plan to use Firebase services (like FCM for push notifications), place your `google-services.json` file from the Firebase console into the `app/` directory.\n5.  **Build \u0026 Run:**\n    *   `Build \u003e Clean Project` then `Build \u003e Rebuild Project`.\n\n## Basic Configuration\n\nAll primary configuration is done within `app/src/main/assets/swv.properties`:\n\n*   **Main Application URL:**\n    *   Set `app.url` to your web application's address.\n    *   `offline.url` (`file:///android_asset/web/offline.html`) is used if no internet is detected.\n*   **Feature Toggles:**\n    *   Enable or disable core features (file uploads, camera access, location services, pull-to-refresh, etc.) by modifying the `feature.*` boolean properties.\n*   **Permissions:**\n    *   Review and adjust permissions in `AndroidManifest.xml` based on the features you enable. For example, `CAMERA` for camera uploads, `ACCESS_FINE_LOCATION` for GPS.\n*   **Plugin Configuration:**\n    *   Plugin-specific behavior (like AdMob IDs or Biometric Auth on launch) is configured in `Playground.java`. This allows you to change settings without modifying the plugin source code itself.\n\n## Included Plugins\n\nSmart WebView now includes all plugins for free, providing a comprehensive toolkit to build powerful hybrid apps out of the box.\n\n*   **AdMob:** Integrate Google AdMob banner, interstitial, and rewarded ads.\n*   **Biometric Authentication:** Secure your app with fingerprint or face unlock.\n*   **QR \u0026 Barcode Reader:** Natively scan QR codes and barcodes using the device camera.\n*   **Image Compression:** Automatically compress images before uploading to save bandwidth and improve performance.\n*   **JS Interface:** A powerful two-way bridge for seamless communication between your web app's JavaScript and native Android code.\n*   **Location:** On-demand access to the device's GPS location.\n*   **Native Dialogs:** Display native alert and confirmation dialogs from your JavaScript.\n*   **Toast Messages:** Show short, non-blocking native toast notifications.\n*   **In-App Review:** Prompt users to rate your app on the Google Play Store based on usage triggers.\n\n## Standalone Libraries\n\nWe are modularizing the best parts of Smart WebView into lightweight, standalone libraries that you can use in **any** Android project (Native or Hybrid).\n\n| Library | Description |\n| :--- | :--- |\n| **[Biometric Gate](https://github.com/mgks/android-biometric-gate)** | Secure, lifecycle-aware lock screen for any Activity. |\n| **[File Handler](https://github.com/mgks/android-webview-file-handler)** | Painless file uploads \u0026 camera captures for WebViews. |\n| **[JS Bridge](https://github.com/mgks/android-webview-js-bridge)** | Two-way, Promise-based communication between Kotlin \u0026 JS. |\n| **[Print Helper](https://github.com/mgks/android-webview-print-helper)** | One-line printing for Android WebViews. |\n| **[FCM Sync](https://github.com/mgks/android-webview-fcm-sync)** | Sync Firebase Push Tokens to WebView Cookies. |\n\n## Further Information\n\nThe best way to understand the project in depth is to explore the source code:\n*   **`app/src/main/assets/swv.properties`**: Contains all global configurations.\n*   **`SWVContext.java`**: The central class that loads the configuration and holds app state.\n*   **`MainActivity.java`**: The main entry point that handles WebView setup and integrates core features.\n*   **`PluginInterface.java` \u0026 `PluginManager.java`**: Key components of the plugin architecture.\n*   **`Playground.java`**: The central place for configuring and testing plugins.\n*   The `plugins/` directory: Contains the full source code for all included plugins.\n\n## Contributing \u0026 Community\n\n*   Found a bug or have an idea? [Open an issue](https://github.com/mgks/Android-SmartWebView/issues) or [create a pull request](https://github.com/mgks/Android-SmartWebView/pulls).\n*   Have questions or want to share what you've built? [Join the discussion](https://github.com/mgks/Android-SmartWebView/discussions).\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\u003e **{ github.com/mgks }**\n\u003e \n\u003e ![Website Badge](https://img.shields.io/badge/Visit-mgks.dev-blue?style=flat\u0026link=https%3A%2F%2Fmgks.dev) ![Sponsor Badge](https://img.shields.io/badge/%20%20Become%20a%20Sponsor%20%20-red?style=flat\u0026logo=github\u0026link=https%3A%2F%2Fgithub.com%2Fsponsors%2Fmgks)\n","funding_links":["https://github.com/sponsors/mgks"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmgks%2Fandroid-smartwebview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmgks%2Fandroid-smartwebview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmgks%2Fandroid-smartwebview/lists"}