【发布时间】:2017-03-25 17:39:14
【问题描述】:
我使用 MuPDF 库制作了一个演示应用程序,但是当应用程序打开时,它会从设备存储中打开一个 pdf 文件。我使用 webview 制作了另一个应用程序来从 assets 文件夹中打开 html。每当单击链接到 pdf 文件的按钮时,我都想使用该库打开阅读器。我找不到任何有关这方面的教程,我非常感谢任何帮助。
Webview 应用程序的 MainActivity.java:
package epsnotes.com.epsnotes;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
private WebView mywebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mywebView = (WebView)findViewById(R.id.webView);
WebSettings webSettings = mywebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mywebView.loadUrl("file:///android_asset/index.html");
mywebView.setWebViewClient(new WebViewClient());
}
@Override
public void onBackPressed() {
if(mywebView.canGoBack()) {
mywebView.goBack();
} else {
super.onBackPressed();
}
}
}
webview 应用的activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="epsnotes.com.epsnotes.MainActivity">
<WebView
android:id="@+id/webView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</RelativeLayout>
MuPDF 演示应用的 MainActivity.java:
package yoseman.com.mupdfdemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RelativeLayout;
import com.artifex.mupdfdemo.FilePicker;
import com.artifex.mupdfdemo.MuPDFCore;
import com.artifex.mupdfdemo.MuPDFPageAdapter;
import com.artifex.mupdfdemo.MuPDFReaderView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout layout = (RelativeLayout) findViewById(R.id.main_layout);
MuPDFCore core = null;
try {
core = new MuPDFCore(this, "/storage/emulated/0/Download/AMHMOE11.pdf");
} catch (Exception e) {
e.printStackTrace();
}
MuPDFReaderView reader = new MuPDFReaderView(this);
reader.setAdapter(new MuPDFPageAdapter(this, new FilePicker.FilePickerSupport() {
@Override
public void performPickFor(FilePicker filePicker) {
}
}, core));
layout.addView(reader);
}
}
MuPDF 演示应用的activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="yoseman.com.mupdfdemo.MainActivity">
</RelativeLayout>
【问题讨论】:
-
如果设备上没有 PDF,请使用您喜欢的 HTTP 客户端 API(例如,
HttpUrlConnection、OkHttp)下载 PDF,然后查看。 -
我在应用程序的资产文件夹中有 pdf 以及我在 webview 中使用的 html。我已将一个按钮链接到 pdf,但是当我运行该应用程序并点击它时,什么也没有发生。我希望 MuPDF 在我点击按钮时打开阅读器。
-
@Yoseph Mandefro:请展示到目前为止您是如何实现它的代码。
-
@user2281606 我添加了代码。如果您对我的问题有任何疑问,请提出。感谢您的关心。