我是一名安卓开发人员,最近我知道了GeckoView。我可以通过android WebView (java代码)获得网页的源代码。
然而,对于我的新网站,android Webview不能加载网页,但GeckoView可以。现在我想通过GeckoView获得一个网页的源代码。有没有人知道解决这个问题的方法?
提前感谢
发布于 2019-10-05 21:28:03
据我所知,您不能使用GeckoView来获取源代码,但是geckoview库中确实有GeckoWebExecutor。看看fetch方法和它返回的WebResponse。
通过将WebResponse.body InputStream转换为字符串,您可以获得源代码。
发布于 2020-07-30 10:53:23
执行此操作的一种选择可以遵循以下步骤:
所以..。
(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获取网页源代码”。这就是答案。效果很好。如果这对你有好处,请接受这是正确的答案。谢谢。祝你编码愉快。
https://stackoverflow.com/questions/57971009
复制相似问题