2

ハイパーリンクをサポートする pdf 読み取り機能をサポートする android アプリを開発するつもりです。つまり、pdf に埋め込まれたハイパーリンクを表示し、アプリがブラウザーにリダイレクトする必要があるハイパーリンクをユーザーがクリックすることを意味します。Google ドキュメントを使用したくありません。オープン ソースの PDF SDK をいくつか見つけましたが、ハイパーリンクのサポートを提供できません。ハイパーリンクのサポートも提供するオープン ソースの SDK が利用可能かどうかを教えてください。

4

1 に答える 1

1

これは、WebView を使用するか、PDF をダウンロードしてインストール済みアプリの Intent を開くことで実行できます。しかし、サードパーティの API を使用しているため、ハイパーリンクされた PDF を開くことができません。上で説明した2つの方法は、次の方法で実現できます

if (!canDisplayPdf()) {
Intent i = new Intent(getBaseContext(), WebActivity.class);
i.putExtra("url", alist.get(position).toString());
//alist.get(position).toString() is hyperlinked pdf url
startActivity(i);
}
else
{
try
{
Toast.makeText(getBaseContext(), "Opening PDF... ", Toast.LENGTH_SHORT).show();
Intent inte = new Intent(Intent.ACTION_VIEW, Uri.parse(alist.get(position).toString()));
//inte.setDataAndType(Uri.parse(alist.get(position).toString()), "application/pdf");
startActivity(inte);
}
catch (ActivityNotFoundException e)
{
Log.e("Activity Not Found", e.getMessage());
}

// If canDisplayPDF function() will ensure whether device has PDF application or not.

public boolean canDisplayPdf() {
PackageManager packageManager = getApplication().getPackageManager();
Intent testIntent = new Intent(Intent.ACTION_VIEW);
testIntent.setType("application/pdf");
if (packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY).size() > 0) {
return true;
}
else
{
return false;
}
}
于 2015-10-14T06:52:12.717 に答える