请告诉我如何分享webview的内容。我已经使用 myjavascriptinterface 类进行注册,但我没有存储webview的内容。请正确引导,以便我能正确理解我的javascriptinterface类的用法。
答案 0 :(得分:0)
你好,如果你的意思是内容HTML代码,我建议你使用Jsoup库,这是非常简单的语法:
Document document = JSoup.connect("http://example.com").get();
当你调用它时:String html = document.getHtml();它返回文档的html字符串。
答案 1 :(得分:0)
目前尚不清楚您想要分享的具体内容。这是常见的考虑因素。
在大多数情况下,您只能共享一个网址。您可以通过webview.getUrl()
方法获取它。
如果您想要整体共享文档,那么下一个问题就是您要分享哪些设备。如果它完全与Android有关,那么您可以使用webview.saveWebArchive()
方法将单个XML文件准备好发送到另一个Android设备(该文件包含包含所有资源的文档内容)。
如果您想在任意平台上共享文档,您可以自己访问html代码。例如,在Java界面中定义方法captureWebDocument(text)
,在webview中注册JavaScript扩展。然后子类WebViewClient
并覆盖onPageFinished()
方法 - 可以找到一个示例here。
在方法中你应该执行:
webview.loadUrl("javascript:injectedJS.captureWebDocument(document.documentElement.innerHTML)");
因此,您将获得Java类中的文档内容,并可以以任何合适的方式继续共享它。提取任何包含的资源(如图像)将需要更多编码。
另一种可能性是在注入的JavaScript中执行所有共享功能(包括将数据上传到服务器,如果需要)。