相对较新。我有一个在应用程序本身打开pdf的问题。我可以做打开的url,让用户在应用程序内冲浪,但我有一个问题与pdf。我使用docs.google.com/gview来做到这一点,但由于某种原因,我从谷歌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格式。我该如何解决这个问题?
414是url太长。我认为你有一个无限循环-你的shouldOverrideUrlLoading在每次加载页面时被调用。它在一个新的、更长的URL上调用loadPage。这将再次调用shouldOverrideUrlLoading。这个循环直到超过URL的大小限制。shouldOverrideUrlLoading不应该调用loadPage。相反,如果你想覆盖URL,它应该返回true,否则返回false。如果url以http://docs.google.com/gview
您可以尝试使用此库在应用程序中显示PDF文件https://github.com/jblough/Android-Pdf-Viewer-Library