我想在WebView
中显示pdf文件的内容。
问题:
当我启动WebView
新对话框打开时,是否要在浏览器或pdf Viewer中加载pdf。但我想直接在WebView
中加载内容。我也尝试使用前缀url来嵌入内容,但随后显示:无法预览。
我的代码:
public class Changelog_View extends ActionBarActivity {
@Override
protected void onCreate ( Bundle savedInstanceState ) {
super.onCreate(savedInstanceState);
String myPdfUrl = "https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2";
String url = "http://docs.google.com/gview?embedded=true&url=" + myPdfUrl;
WebView webview = new WebView(this);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl(url);
setContentView(webview);
}
}
我现在用android-pdfView库尝试了这段代码:
@Override
protected void onCreate ( Bundle savedInstanceState ) {
super.onCreate ( savedInstanceState );
com.joanzapata.pdfview.PDFView pdfView = new com.joanzapata.pdfview.PDFView ( getApplicationContext (), null );
String myPdfUrl = "https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2";
pdfView.fromAsset(myPdfUrl)
.defaultPage(1)
.showMinimap(false)
.enableSwipe(true)
.onLoad(this)
.onPageChange ( new OnPageChangeListener () {
@Override
public void onPageChanged ( int i, int i1 ) {
}
} )
.load();
但是FileNotFoundException
出现在地址:https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2
。地址直接指向我的onedrive帐户中的pdf文件。因此,当我在浏览器中输入此链接时,pdf文件正在下载。
那么如何在我的应用程序中使用https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2
库显示来自地址的pdf文件:android-pdfView
?
感谢。
答案 0 :(得分:1)
要在Webview中打开pdf,最好通过google doc service显示pdf
WebView webView=(WebView)findViewById(R.id.webView);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + REPLACE_WITH_YOUR_LINK);
答案 1 :(得分:0)
如果没有WebViewClient,那么它只会在不同的窗口中打开。
mWebView.setWebViewClient(new WebViewClient());