相对较新。我有一个问题,即在应用程序内打开pdf。我可以打开网址,让用户在应用程序内浏览,但我遇到了PDF问题。我使用docs.google.com/gview执行此操作但由于某种原因我无法使用Google 414收到错误。这是我的代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView theWebPage = new WebView(this);
setContentView(theWebPage);
theWebPage.getSettings().setBuiltInZoomControls(true);
theWebPage.zoomIn();
theWebPage.loadUrl("http://www.example.com");
theWebPage.getSettings().setJavaScriptEnabled(true);
//theWebPage.getSettings().setPluginsEnabled(true);
theWebPage.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
String url2 = "http://docs.google.com/gview?embedded=true&url=" + url;
view.loadUrl(url2);
//view.loadUrl(url);
return false;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
页面上的所有链接均为pdf。我该如何解决?提前谢谢。
答案 0 :(得分:0)
414是网址太长。我认为你有一个无限循环 - 每次加载页面时都会调用shouldOverrideUrlLoading。它在一个新的更长的URL上调用loadPage。这会再次调用shouldOverrideUrlLoading。这将循环,直到您超过URL的大小限制。 shouldOverrideUrlLoading永远不应该调用loadPage。相反,如果要覆盖URL,则应返回true,否则返回false。如果网址以http://docs.google.com/gview
开头,您至少应该检查并不要调用loadPage答案 1 :(得分:0)
您可以尝试使用此库在应用程序中显示PDF文件 https://github.com/jblough/Android-Pdf-Viewer-Library