【问题标题】:Android WebView: use firefox/gecko browser engine on Lineage OSAndroid WebView:在 Lineage OS 上使用 firefox/gecko 浏览器引擎
【发布时间】:2019-08-20 18:28:53
【问题描述】:

在 Lineage OS 上(可能在任何 Android 上?),可以更改默认 WebView 渲染(默认设置为 AOSP Browser,默认 android 浏览器没有 GAPPS)。当我安装 Chrome 时(即使没有安装 GAPPS),我可以在设置/开发中将此默认值更改为 Chrome(这在我的情况下很实用,因为默认浏览器有一些烦人的错误)。

是否也可以使用 Firefox 的引擎而不是浏览器/Chrome(我不想安装 chrome 并依赖专有软件)?安装 Firefox(FDroid 上的 Fennec)是不够的。

谢谢!

【问题讨论】:

  • 在沿袭开发者选项中还有一个我不明白的设置。下一个“Webview 同时处理”“单独运行 WebView 渲染器”:我从来不明白这个设置是干什么用的,但我注意到如果我关闭它并卸载 webview,webview 会继续在我的手机上运行。好像它应该在那里。一个例子是应用程序 Etar,或电子邮件程序 K-9。如果我关闭“单独运行 WebView 渲染器”并在此之后卸载 webview 应用程序和 HTML 渲染器,这两个应用程序将继续呈现 html 内容。

标签: android android-webview lineageos


【解决方案1】:

除了常见的 Chrome WebView,还有 Mozilla GeckoView

quick start 显示了如何添加它 - 还有一个 example app

缺点是,geckoview-70.0.20191022130254.aar 有 149.8 MB。

这将是 API documentationGitHub 的主页。

【讨论】:

  • 感谢您的回答。但如果我正确理解 GeckoView,它是用来创建新应用程序的,而不是替换所有 android 应用程序使用的默认 WebView。
  • 当然这有更多的开销,因为没有使用系统/库 WebKit 引擎,但它通常是你所要求的。使用 Chrome WebView,安装了一个包,但 GeckoView 需要该库依赖项。 API 文档清楚地显示了它是什么...
  • 那么当GeckView 可以像简单的View 一样使用时,为什么不能将WebView 实现为GeckoView
  • @FiliusPatris org.mozilla.geckoview.GeckoView 可以用来代替android.webkit.WebView。一个与另一个无关。
  • @MartinZeitler 那么为什么没有人扩展WebView 并将实现委托给GeckoView?问题出在哪里?
【解决方案2】:

这是不可能的,因为根据其中一位作者的说法,GeckoView 没有实现 WebView API。

https://github.com/mozilla/geckoview/issues/167#issuecomment-902022285

【讨论】:

  • 谢谢。据我了解,这甚至是一个法律问题?
  • @tobiasBora 这将是历史上最具讽刺意味的法律问题。 Google 向 Oracle 索赔了十多年,索赔 80 亿美元:“不,你看,API 不能受版权保护,我们可以使用 Java 语言并为所欲为!”然后转身告诉 Mozilla:“你怎么能这样对我们,为我们的 WebView API‽实现一个实现”
  • 但是,它们可以限制您作为供应商可以运送的物品。 “哦,你想要 Googly 地图和 Youtube?哈,你不能 give the user access to their system by default 也不能提供除 Chrome 以外的任何 WebView!就这样吧!”并且不知何故,在 Web 应用程序中使用这种优势来强制用户可以在 他们的 设备上安装哪些软件并不是antitrust issue `\_(:|)_/`
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 2014-12-27
  • 2018-06-23
  • 1970-01-01
  • 2014-10-13
相关资源
最近更新 更多