当前位置:  开发笔记 > 编程语言 > 正文

在WebView中获取文档位置?

如何解决《在WebView中获取文档位置?》经验,为你挑选了2个好方法。

简单来说:我想在WebView中显示的html文件中为当前位置(可能是几个位置)添加书签以便以后恢复它.任何一点提示都会有所帮助.:)



1> CommonsWare..:

如果"当前位置"是指给定页面中的某个点,我不相信这是可能的......至少不是纯粹来自Java.暴露给Java的整个WebKit API缺少处理页面内容的任何内容.

如果您可以控制页面内容,并且可以通过页内Javascript了解这些位置,则可以:

步骤1:用于使用WebView#addJavascriptInterface()某种recordPosition()方法添加对象,将信息保存在适当的位置

步骤#2:创建一个调用recordPosition()注入对象的Javascript函数.

然后是:

步骤#3a:从Javascript本身触发Javascript函数(例如,基于点击),或

步骤#3b:调用loadUrl("javascript:...");你的WebView,...用Javascript代码替换,从步骤#2触发Javascript函数.

恢复这些位置必须以同样的方式工作:让Javascript执行实际的恢复,可能由Java代码触发.

请注意,我不知道你想要什么(获取/设置当前位置)可以从Javascript获得,因为我不是一个浏览器内编码器.



2> jamesh..:

我采取的方法如下:

在该onSaveInstanceState()方法中,计算用户滚动页面的距离.

    int contentHeight = webView.getContentHeight();
    int scrollY = webView.getScrollY();

    float scrollPercent = ((float) scrollY / ((float) contentHeight));

藏在捆绑中.在方法中恢复页面时onCreate(),等待页面完成加载(in WebClient.onPageFinished()),滚动到记录的位置:

    int contentHeight = webView.getContentHeight(); 
    int y = (int) ((float) contentHeight * scrollPercent);
    webView.scrollTo(0, y);

使用float和计算比率适用于在横向和纵向之间翻转的情况.

可以很好工作,但与自动化图像混合时不完美.

也可以考虑比例.我倾向于在onPause()方法中的首选项中存储比例,然后webView.setInitialScale(scale)在开始加载页面之前.

我发现在scrollPercent > 0看起来更好时将Web视图设置为不可见.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有