在应用程序中打开PDF.不工作.需要帮助



相对较新。我有一个在应用程序本身打开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

开头,您至少应该检查而不是调用loadPage

您可以尝试使用此库在应用程序中显示PDF文件https://github.com/jblough/Android-Pdf-Viewer-Library

最新更新