{"id":13639155,"url":"https://github.com/TheFinestArtist/FinestWebView-Android","last_synced_at":"2025-04-19T22:31:58.849Z","repository":{"id":7862243,"uuid":"9234481","full_name":"TheFinestArtist/FinestWebView-Android","owner":"TheFinestArtist","description":"Beautiful and customizable Android Activity that shows web pages within an app.","archived":false,"fork":false,"pushed_at":"2023-02-06T08:57:39.000Z","size":64210,"stargazers_count":2323,"open_issues_count":131,"forks_count":531,"subscribers_count":89,"default_branch":"master","last_synced_at":"2024-10-29T17:42:52.042Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://finestwebview.web.app","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheFinestArtist.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-04-05T05:29:08.000Z","updated_at":"2024-10-18T14:34:41.000Z","dependencies_parsed_at":"2023-02-19T06:00:26.387Z","dependency_job_id":null,"html_url":"https://github.com/TheFinestArtist/FinestWebView-Android","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFinestArtist%2FFinestWebView-Android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFinestArtist%2FFinestWebView-Android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFinestArtist%2FFinestWebView-Android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFinestArtist%2FFinestWebView-Android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheFinestArtist","download_url":"https://codeload.github.com/TheFinestArtist/FinestWebView-Android/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223100263,"owners_count":17087388,"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":[],"created_at":"2024-08-02T01:00:58.203Z","updated_at":"2024-11-09T09:30:41.322Z","avatar_url":"https://github.com/TheFinestArtist.png","language":"Kotlin","readme":"# FinestWebView\n[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-FinestWebView-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/2861)\n[![Platform](https://img.shields.io/badge/platform-android-green.svg)](http://developer.android.com/index.html)\n[![API](https://img.shields.io/badge/API-7%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=16)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg?style=flat)](http://opensource.org/licenses/MIT)\n\n#### Beautiful and customizable Android Activity that shows web pages within an app.\n\n* Builder pattern\n* Material design \u0026 Pre-made icons\n* Webview listeners\n* Custom themes \u0026 Custom transition animations\n* Support collapsing toolbar \u0026 contextual actionbar\n* SwipeRefreshLayout \u0026 Progressbar\n* Device rotation\n* Gradient divider\n* Custom typeface \u0026 translation\n* Supports Right to Left\n\n## Screenshots\n\u003cimg src=\"https://github.com/TheFinestArtist/FinestWebView-Android/blob/master/art/screenshots.png?raw=true\" width=\"888\"\u003e\n\n### Default theme \u0026 Copied to clipboard\n\u003cimg src=\"https://github.com/TheFinestArtist/FinestWebView-Android/blob/master/art/first.png?raw=true\" width=\"888\"\u003e\n\n### Back and forward \u0026 More options\n\u003cimg src=\"https://github.com/TheFinestArtist/FinestWebView-Android/blob/master/art/second.png?raw=true\" width=\"888\"\u003e\n\n## FinestWebView Demo Video - YouTube\n\u003ca href=\"https://www.youtube.com/watch?v=7qmAqnspjAM\" target=\"_blank\"\u003e\n  \u003cimg alt=\"Youtube\"\n       src=\"https://github.com/TheFinestArtist/FinestWebView-Android/blob/master/art/youtube.png\"\u003e\n\u003c/a\u003e\n\n\n## Sample Project\n\nYou can download the latest sample APK from this repo here: [sample-release.apk](https://github.com/TheFinestArtist/FinestWebView-Android/blob/master/sample/sample-release.apk?raw=true)\n\nIt's also on Google Play:\n\n\u003ca href=\"https://play.google.com/store/apps/details?id=com.thefinestartist.finestwebview.sample\" target=\"_blank\"\u003e\n  \u003cimg alt=\"Get it on Google Play\"\n      src=\"https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png\" height=\"60\"/\u003e\n\u003c/a\u003e\n\n## Getting started\n\n#### Gradle Dependency (jcenter)\n\nEasily reference the library in your Android projects using this dependency in your module's `build.gradle` file.\n\n```java\ndependencies {\n    compile 'com.thefinestartist:finestwebview:1.2.7'\n}\n```\n\n#### Manifest Settings\n\nFinestWebView is basically and Android activity with webview, toolbar and etc.  \nYou have to add FinestWebViewActivity in your `AndroidManifest.xml`\n\n```xml\n\u003cuses-permission android:name=\"android.permission.INTERNET\" /\u003e\n\n\u003cactivity\n    android:name=\"com.thefinestartist.finestwebview.FinestWebViewActivity\"\n    android:configChanges=\"keyboardHidden|orientation|screenSize\"\n    android:screenOrientation=\"sensor\"\n    android:theme=\"@style/FinestWebViewTheme.Light\" /\u003e\n```\n\n#### Basic WebView\n\n```java\nnew FinestWebView.Builder(activity).show(url);\n```\n\n\n## Customization\n\n#### There are 2 ways to customize FinestWebView.\n\n### 1. Using Themes\n\nYou can use your own Theme for FinestWebView. If you want to use pre-defined theme, use `android:theme=\"@style/FinestWebViewTheme\"` or `android:theme=\"@style/FinestWebViewTheme.Fullscreen\"`\n\n```xml\n\u003cstyle name=\"AppTheme.NoActionBar\" parent=\"Theme.AppCompat.Light.NoActionBar\"\u003e\n    \u003citem name=\"colorPrimary\"\u003e@color/primary\u003c/item\u003e\n    \u003citem name=\"colorPrimaryDark\"\u003e@color/primary_dark\u003c/item\u003e\n    \u003citem name=\"colorAccent\"\u003e@color/accent\u003c/item\u003e\n    \u003citem name=\"android:textColorPrimary\"\u003e@color/primary_text\u003c/item\u003e\n    \u003citem name=\"android:textColorSecondary\"\u003e@color/secondary_text\u003c/item\u003e\n    \u003citem name=\"windowActionModeOverlay\"\u003etrue\u003c/item\u003e\n\u003c/style\u003e\n```\n\n```xml\n\u003cactivity\n    android:name=\"com.thefinestartist.finestwebview.FinestWebViewActivity\"\n    android:theme=\"@style/AppTheme.NoActionBar\" /\u003e\n```\n\n### 2. Builder Options\n\n#### Constructors\n```java\nBuilder(@NonNull Activity activity);\n// If you use context instead of activity, FinestWebView enter animation won't work\nBuilder(@NonNull Context context);\n```\n\n#### Load data or Show url\n```java\nload(@StringRes int dataRes);\nload(String data);\nload(String data, String mimeType, String encoding);\n\nshow(@StringRes int urlRes);\nshow(@NonNull String url);\n```\n\n#### WebView Listener Options\n```java\nsetWebViewListener(WebViewListener listener);\naddWebViewListener(WebViewListener listener);\nremoveWebViewListener(WebViewListener listener);\n```\n\n#### Right to Left Options\n```java\nrtl(boolean rtl);\n```\n\n#### Theme Options\n```java\ntheme(@StyleRes int theme);\n```\n\n#### StatusBar Options\n```java\nstatusBarColor(@ColorInt int color);\nstatusBarColorRes(@ColorRes int color);\n```\n\n#### Toolbar Options\n```java\ntoolbarColor(@ColorInt int color);\ntoolbarColorRes(@ColorRes int color);\ntoolbarScrollFlags(@ScrollFlags int flags);\n```\n\n#### Icon Options\n```java\niconDefaultColor(@ColorInt int color);\niconDefaultColorRes(@ColorRes int color);\niconDisabledColor(@ColorInt int color);\niconDisabledColorRes(@ColorRes int colorRes);\niconPressedColor(@ColorInt int color);\niconPressedColorRes(@ColorRes int colorRes);\niconSelector(@DrawableRes int selectorRes);\n```\n\n#### Icon Options\n```java\nshowIconClose(boolean showIconClose);\ndisableIconClose(boolean disableIconClose);\nshowIconBack(boolean showIconBack);\ndisableIconBack(boolean disableIconBack);\nshowIconForward(boolean showIconForward);\ndisableIconForward(boolean disableIconForward);\nshowIconMenu(boolean showIconMenu);\ndisableIconMenu(boolean disableIconMenu);\n```\n\n#### SwipeRefreshLayout Options\n```java\nshowSwipeRefreshLayout(boolean showSwipeRefreshLayout);\nswipeRefreshColor(@ColorInt int color);\nswipeRefreshColorRes(@ColorRes int colorRes);\nswipeRefreshColors(int[] colors);\nswipeRefreshColorsRes(@ArrayRes int colorsRes);\n```\n\n#### Divider Options\n```java\nshowDivider(boolean showDivider);\ngradientDivider(boolean gradientDivider);\ndividerColor(@ColorInt int color);\ndividerColorRes(@ColorRes int colorRes);\ndividerHeight(float height);\ndividerHeight(int height);\ndividerHeightRes(@DimenRes int height);\n```\n\n#### ProgressBar Options\n```java\nshowProgressBar(boolean showProgressBar);\nprogressBarColor(@ColorInt int color);\nprogressBarColorRes(@ColorRes int colorRes);\nprogressBarHeight(float height);\nprogressBarHeight(int height);\nprogressBarHeightRes(@DimenRes int height);\nprogressBarPosition(@NonNull Position position);\n```\n\n#### Title Options\n```java\ntitleDefault(@NonNull String title);\ntitleDefaultRes(@StringRes int stringRes);\nupdateTitleFromHtml(boolean updateTitleFromHtml);\ntitleSize(float titleSize);\ntitleSize(int titleSize);\ntitleSizeRes(@DimenRes int titleSize);\ntitleFont(String titleFont);\ntitleColor(@ColorInt int color);\ntitleColorRes(@ColorRes int colorRes);\n```\n\n#### Url Options\n```java\nshowUrl(boolean showUrl);\nurlSize(float urlSize);\nurlSize(int urlSize);\nurlSizeRes(@DimenRes int urlSize);\nurlFont(String urlFont);\nurlColor(@ColorInt int color);\nurlColorRes(@ColorRes int colorRes);\n```\n\n#### Menu Options\n```java\nmenuColor(@ColorInt int color);\nmenuColorRes(@ColorRes int colorRes);\nmenuDropShadowColor(@ColorInt int color);\nmenuDropShadowColorRes(@ColorRes int colorRes);\nmenuDropShadowSize(float menuDropShadowSize);\nmenuDropShadowSize(int menuDropShadowSize);\nmenuDropShadowSizeRes(@DimenRes int menuDropShadowSize);\nmenuSelector(@DrawableRes int selectorRes);\n\nmenuTextSize(float menuTextSize);\nmenuTextSize(int menuTextSize);\nmenuTextSizeRes(@DimenRes int menuTextSize);\nmenuTextFont(String menuTextFont);\nmenuTextColor(@ColorInt int color);\nmenuTextColorRes(@ColorRes int colorRes);\n\nmenuTextGravity(int gravity);\nmenuTextPaddingLeft(float menuTextPaddingLeft);\nmenuTextPaddingLeft(int menuTextPaddingLeft);\nmenuTextPaddingLeftRes(@DimenRes int menuTextPaddingLeft);\nmenuTextPaddingRight(float menuTextPaddingRight);\nmenuTextPaddingRight(int menuTextPaddingRight);\nmenuTextPaddingRightRes(@DimenRes int menuTextPaddingRight);\n\nshowMenuRefresh(boolean showMenuRefresh);\nstringResRefresh(@StringRes int stringResRefresh);\nshowMenuFind(boolean showMenuFind);\nstringResFind(@StringRes int stringResFind);\nshowMenuShareVia(boolean showMenuShareVia);\nstringResShareVia(@StringRes int stringResShareVia);\nshowMenuCopyLink(boolean showMenuCopyLink);\nstringResCopyLink(@StringRes int stringResCopyLink);\nshowMenuOpenWith(boolean showMenuOpenWith);\nstringResOpenWith(@StringRes int stringResOpenWith);\n```\n\n#### More Options\n```java\nsetCustomAnimations(@AnimRes int animationOpenEnter,\n                    @AnimRes int animationOpenExit,\n                    @AnimRes int animationCloseEnter,\n                    @AnimRes int animationCloseExit)\nbackPressToClose(boolean backPressToClose);\nstringResCopiedToClipboard(@StringRes int stringResCopiedToClipboard);\n```\n\n#### WebView Options\n```java\nwebViewSupportZoom(boolean webViewSupportZoom);\nwebViewMediaPlaybackRequiresUserGesture (boolean webViewMediaPlaybackRequiresUserGesture);\nwebViewBuiltInZoomControls (boolean webViewBuiltInZoomControls);\nwebViewDisplayZoomControls (boolean webViewDisplayZoomControls);\nwebViewAllowFileAccess (boolean webViewAllowFileAccess);\nwebViewAllowContentAccess (boolean webViewAllowContentAccess);\nwebViewLoadWithOverviewMode (boolean webViewLoadWithOverviewMode);\nwebViewSaveFormData (boolean webViewSaveFormData);\nwebViewTextZoom (int webViewTextZoom);\nwebViewUseWideViewPort (boolean webViewUseWideViewPort);\nwebViewSupportMultipleWindows (boolean webViewSupportMultipleWindows);\nwebViewLayoutAlgorithm (WebSettings.LayoutAlgorithm webViewLayoutAlgorithm);\nwebViewStandardFontFamily (String webViewStandardFontFamily);\nwebViewFixedFontFamily (String webViewFixedFontFamily);\nwebViewSansSerifFontFamily (String webViewSansSerifFontFamily);\nwebViewSerifFontFamily (String webViewSerifFontFamily);\nwebViewCursiveFontFamily (String webViewCursiveFontFamily);\nwebViewFantasyFontFamily (String webViewFantasyFontFamily);\nwebViewMinimumFontSize (int webViewMinimumFontSize);\nwebViewMinimumLogicalFontSize (int webViewMinimumLogicalFontSize);\nwebViewDefaultFontSize (int webViewDefaultFontSize);\nwebViewDefaultFixedFontSize (int webViewDefaultFixedFontSize);\nwebViewLoadsImagesAutomatically (boolean webViewLoadsImagesAutomatically);\nwebViewBlockNetworkImage (boolean webViewBlockNetworkImage);\nwebViewBlockNetworkLoads (boolean webViewBlockNetworkLoads);\nwebViewJavaScriptEnabled (boolean webViewJavaScriptEnabled);\nwebViewAllowUniversalAccessFromFileURLs (boolean webViewAllowUniversalAccessFromFileURLs);\nwebViewAllowFileAccessFromFileURLs (boolean webViewAllowFileAccessFromFileURLs);\nwebViewGeolocationDatabasePath (String webViewGeolocationDatabasePath);\nwebViewAppCacheEnabled (boolean webViewAppCacheEnabled);\nwebViewAppCachePath (String webViewAppCachePath);\nwebViewDatabaseEnabled (boolean webViewDatabaseEnabled);\nwebViewDomStorageEnabled (boolean webViewDomStorageEnabled);\nwebViewGeolocationEnabled (boolean webViewGeolocationEnabled);\nwebViewJavaScriptCanOpenWindowsAutomatically (boolean webViewJavaScriptCanOpenWindowsAutomatically);\nwebViewDefaultTextEncodingName (String webViewDefaultTextEncodingName);\nwebViewUserAgentString (String webViewUserAgentString);\nwebViewNeedInitialFocus (boolean webViewNeedInitialFocus);\nwebViewCacheMode (int webViewCacheMode);\nwebViewMixedContentMode (int webViewMixedContentMode);\nwebViewOffscreenPreRaster (boolean webViewOffscreenPreRaster);\n\ninjectJavaScript(String injectJavaScript);\n```\n\n#### Builder Pattern\n```java\nnew FinestWebView.Builder(activity)\n    .titleDefault(\"Default Title\")\n    .toolbarScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS)\n    .gradientDivider(false)\n    .dividerHeight(100)\n    .toolbarColorRes(R.color.accent)\n    .dividerColorRes(R.color.black_30)\n    .iconDefaultColorRes(R.color.accent)\n    .iconDisabledColorRes(R.color.gray)\n    .iconPressedColorRes(R.color.black)\n    .progressBarHeight(DipPixelHelper.getPixel(context, 3))\n    .progressBarColorRes(R.color.accent)\n    .backPressToClose(false)\n    .setCustomAnimations(R.anim.activity_open_enter, R.anim.activity_open_exit, R.anim.activity_close_enter, R.anim.activity_close_exit)\n    .show(url);\n```\n\n\n## More customizations\n\n#### WebView Listeners\nFinestWebView has its own listeners to listen event from WebView\n```java\npublic void onProgressChanged(int progress);\npublic void onReceivedTitle(String title);\npublic void onReceivedTouchIconUrl(String url, boolean precomposed);\n\npublic void onPageStarted(String url);\npublic void onPageFinished(String url);\npublic void onLoadResource(String url);\npublic void onPageCommitVisible(String url);\n\npublic void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType, long contentLength)\n```\n\n#### Status Bar Color \u0026 Toolbar Color\n\nStatus bar color will be set as `colorPrimaryDark` of FinestWebViewActivity's theme.  \nToolbar color will be set as `colorPrimary` of FinestWebViewActivity's theme.  \nBut, you can override theses settings using builder option `statusBarColor`, `statusBarColorRes`, `toolbarColor`, `toolbarColorRes`.\n\n\n#### Disable Toolbar Collapsing\n\n```java\nnew FinestWebView.Builder(activity)\n    .toolbarScrollFlags(0) // By sending as 0, toolbar collapsing will be disabled\n    .show(url);\n```\n\n\n#### Collapsing Toolbar vs WebView BuiltInZoomControls\nIf you enable BuiltInZoomControls `webViewBuiltInZoomControls(true)`, it will automatically disable toolbar collapsing.\n\n\n#### Full Screen Mode\n\n```xml\n\u003cstyle name=\"AppTheme.NoActionBar.FullScreen\" parent=\"AppTheme.NoActionBar\"\u003e\n    \u003citem name=\"android:windowContentOverlay\"\u003e@null\u003c/item\u003e\n    \u003citem name=\"android:windowFullscreen\"\u003etrue\u003c/item\u003e\n\u003c/style\u003e\n\u003cactivity\n    android:name=\"com.thefinestartist.finestwebview.FinestWebViewActivity\"\n    android:theme=\"@style/AppTheme.NoActionBar.FullScreen\" /\u003e\n```\n\n\n#### Customizing Animations\n\nYou can use some pre-defined animations from this library or your own animations.\n\n```java\nnew FinestWebView.Builder(activity)\n    .setCustomAnimations(R.anim.activity_open_enter, R.anim.activity_open_exit, R.anim.activity_close_enter, R.anim.activity_close_exit)\n    .show(url);\n```\n\nPre-defined animation sets\n\n```java\n.setCustomAnimations(R.anim.activity_open_enter, R.anim.activity_open_exit, R.anim.activity_close_enter, R.anim.activity_close_exit)\n.setCustomAnimations(R.anim.fragment_open_enter, R.anim.fragment_open_exit, R.anim.fragment_close_enter, R.anim.fragment_close_exit)\n.setCustomAnimations(R.anim.slide_up, R.anim.hold, R.anim.hold, R.anim.slide_down)\n.setCustomAnimations(R.anim.slide_left_in, R.anim.hold, R.anim.hold, R.anim.slide_right_out)\n.setCustomAnimations(R.anim.fade_in_fast, R.anim.fade_out_medium, R.anim.fade_in_medium, R.anim.fade_out_fast)\n```\n\n\n#### Orientation Support\n\nUse configChange, screenOrientation to customize your orientation options\n\n```xml\n\u003cactivity\n    android:name=\"com.thefinestartist.finestwebview.FinestWebViewActivity\"\n    android:configChanges=\"keyboardHidden|orientation|screenSize\"\n    android:screenOrientation=\"sensor\"\n    android:theme=\"@style/FinestWebViewTheme\" /\u003e\n```\n\n#### Gradient Divider\n\nYou can make your divider gradient. If you do, webview will be under the gradient. If you disable gradient divider, webview will be below the divider.\n\n```java\nnew FinestWebView.Builder(activity)\n    .gradientDivider(false)\n    .show(url);\n```\n\n\n#### Custom Typeface\n\nYou can use your own typeface for title, url, and menus. You have to add your font file in `assets/fonts` folder.\n\n```java\nnew FinestWebView.Builder(activity)\n    .titleFont(\"Roboto-Medium.ttf\")\n    .urlFont(\"Roboto-Regular.ttf\")\n    .menuTextFont(\"Roboto-Medium.ttf\")\n    .show(url);\n```\n\n\n#### Custom Translation\n\nYou can use your own String resources to translate strings.\n\n```java\nnew FinestWebView.Builder(activity)\n    .stringResCopiedToClipboard(R.string.copied_to_clipboard)\n    .stringResRefresh(R.string.refresh)\n    .stringResShareVia(R.string.share_via)\n    .stringResCopyLink(R.string.copy_link)\n    .stringResOpenWith(R.string.open_with)\n    .show(url);\n```\n\n#### Right to Left\n\nYou can support right to left by setting `android:supportsRtl=\"true\"` in `AndroidManifest.xml` or `rtl(true)`.\n\n```xml\n\u003capplication\n    ...\n    android:supportsRtl=\"true\"\u003e\n\u003c/application\u003e\n```\n```java\nnew FinestWebView.Builder(activity)\n    .rtl(true)\n    .show(url);\n```\n\n#### WebView Desktop Mode\n\nYou can force WebView to show in desktop mode by setting `webViewUserAgentString(\"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/20100101 Firefox/4.0\")`. \n\n## Designer\n\n#### [Min Kim](https://github.com/openyourboxes)\n\n* User Interface Design\n* Graphic Design\n\n\n## License\n\n```\nThe MIT License (MIT)\n\nCopyright (c) 2013 TheFinestArtist\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n```\n","funding_links":[],"categories":["WebView","etc","Kotlin"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheFinestArtist%2FFinestWebView-Android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTheFinestArtist%2FFinestWebView-Android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheFinestArtist%2FFinestWebView-Android/lists"}