我正在使用谷歌文档在webview中显示PDF。有没有办法知道用户何时移动到下一页?
我的要求是我通过WebView
开始以PDF格式显示协议,现在当用户移动到下一页时,应显示CheckBox
,因此我想跟踪页面更改。
我的情景描述:
在下图中,使用WebView
显示了10页的PDF,现在当用户使用右上角的箭头转到下一页时,我需要知道事件的变化。
我尝试使用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()
,但两者都无效。
答案 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;
}