首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用GeckoView获取网页源代码

如何用GeckoView获取网页源代码
EN

Stack Overflow用户
提问于 2019-09-17 17:11:31
回答 2查看 281关注 0票数 0

我是一名安卓开发人员,最近我知道了GeckoView。我可以通过android WebView (java代码)获得网页的源代码。

然而,对于我的新网站,android Webview不能加载网页,但GeckoView可以。现在我想通过GeckoView获得一个网页的源代码。有没有人知道解决这个问题的方法?

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2019-10-05 21:28:03

据我所知,您不能使用GeckoView来获取源代码,但是geckoview库中确实有GeckoWebExecutor。看看fetch方法和它返回的WebResponse

通过将WebResponse.body InputStream转换为字符串,您可以获得源代码。

票数 0
EN

Stack Overflow用户

发布于 2020-07-30 10:53:23

执行此操作的一种选择可以遵循以下步骤:

  1. 检测geckoview加载的页面;
  2. 将加载的url保存到共享首选项中;
  3. 如果用户想要查看页面的源代码,请加载保存在该共享首选项中的url。

所以..。

(1-2)正如你已经知道的,geckoview没有方便的shouldOverrideUrlLoading()方法,所以你将不得不处理NavigationDelegate类,它有onLocationChange(),我把这一行放在那里,它除了将当前url作为字符串保存到名为“geckoViewUrl”的sharedpref字符串中之外,什么也做不了:

sharedprefs.edit().putString("geckoViewUrl",url).apply();

在此之前进行了所有设置(sharedprefs等)。检测到加载的页面并将url保存到sharedpref中,让我们进入最后的步骤3。

(3)供我使用,希望只允许用户查看(和复制)源代码,出于最小努力的原则,我使用了另一个带有普通和旧see视图的活动来显示它。这非常容易实现,并且不会引起用户的困惑。他/她想看代码,我在另一个活动中展示了它。当它完成时,他/她结束新的活动,生活继续。

那么,用户想要源代码吗?使用webview加载另一个活动,并使其加载保存的sharedpref字符串:

addr2open = pref_out.getString("geckoViewUrl","");

这样做(例如),您将获得用户想要查看分配给字符串var的源的url。要完成此操作,您所要做的就是让webview加载这个字符串,该字符串前面有一个宝贵的单词view-source:,这样:

查看源(“

-webView.loadUrl:”+ addr2open);

就这样。当然,你可以依靠相同的活动实现一个解决方案,或者使用geckoView,显示多个选项,菜单等。我只是想向你展示一种很好的,简单的方法来解决你的问题。你问的是“如何用GeckoView获取网页源代码”。这就是答案。效果很好。如果这对你有好处,请接受这是正确的答案。谢谢。祝你编码愉快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57971009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档