在Android的WebView中显示PDF的跟踪页面导航?

时间:2013-06-20 04:25:12

标签: android android-webview

我正在使用谷歌文档在webview中显示PDF。有没有办法知道用户何时移动到下一页?

我的要求是我通过WebView开始以PDF格式显示协议,现在当用户移动到下一页时,应显示CheckBox,因此我想跟踪页面更改。

我的情景描述:

在下图中,使用WebView显示了10页的PDF,现在当用户使用右上角的箭头转到下一页时,我需要知道事件的变化。

enter image description here

我尝试使用onProgressChanged(),但没有帮助。

webView.setWebChromeClient(new WebChromeClient() {
           public void onProgressChanged(WebView view, int progress) {
             // Activities and WebViews measure progress with different scales.
             // The progress meter will automatically disappear when we reach 100%
               Toast toast = Toast.makeText(getApplicationContext(), "PAge change detected", Toast.LENGTH_LONG);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
           }
         });

我也尝试使用onLoadResource()shouldInterceptRequest(),但两者都无效。

2 个答案:

答案 0 :(得分:2)

我不知道为什么当你尝试加载另一个页面而没有调用onoverrideurl和onProgressChanged但是另一个工作时你可以覆盖该方法:

@Override
public void onLoadResource(WebView view, String url) {
    Log.d("URL","Load Resource"+ url);
    super.onLoadResource(view, url);
}

它会在其下方显示带有pagenumber的网址:

06-20 11:40:37.980: D/URL(5276):https://docs.google.com/gview?url=http%3A%2F%2F182.73.10.196%3A8001%2Fql%2FUnsignedAgreement%2Fexample.pdf&docid=a6653aac025f0eccbc5f96226923c79a&a=bi&pagenumber=2&w=253

在这个字符串中你有一个pagenumber,你可以在它周围编写逻辑来实现你需要的东西。

答案 1 :(得分:0)

你可以使用onJsBeforeUnload这会告诉你用户何时离开当前页面。 返回false将停止导航并返回true将允许导航。 或者以适合您需要的方式处理它。

public boolean onJsBeforeUnload(WebView view, String url, String message,
        JsResult result) {
    return false;
}