3

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

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

我的场景描述:

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

在此处输入图像描述

我尝试使用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(),它们都不起作用。

4

2 回答 2

2

我不知道为什么 shouldoverrideurl 和 onProgressChanged 在您尝试加载另一个页面时不会被调用,但其他解决方法可以覆盖该方法:

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

它将在其下方显示带有页码的网址:

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

在这个字符串中,你有页码,你可以围绕它编写逻辑来实现你所需要的。

于 2013-06-20T04:38:16.007 回答
0

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

public boolean onJsBeforeUnload(WebView view, String url, String message,
        JsResult result) {
    return false;
}
于 2013-07-03T05:55:36.833 回答