2

Phonegap (バージョン: 2.7.0) を使用して、iOS および Android 用のアプリをコーディングしています。PDF ファイルは file:///android_asset/www/test.pdf (.apk に圧縮されています) です。

次のようなネイティブ pdf ビューアでこの pdf を開こうとします。

window.open('file:///android_asset/www/test.pdf', '_system', 'location=yes');

上記のコマンドは、ブラウザーと iOS で動作します (_blankの代わりに使用する必要があります_system) 。

Phonegap File API でファイルを sdcard にロードしようとしましたが、android_asset/www.

android_asset/www パスから直接 PDF を開くことは可能ですか?
ファイルをSDカードにコピーして、そこから開くことはできますか?
Androidインストールスクリプトで可能でしょうか?

編集:

これを /src/com/...etc .java ファイルの .java ファイルに追加しました。

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {        
  super.appView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}

しかし、まだ同じ問題があります...

adb -d logcatアプリを起動してpdfリンクをクリックすると、出力が発生します。

I/ActivityManager(22040): Displayed com.company.appname/.Appname: +1s611ms I/ActivityManager(22040): Displayed com.tf.thinkdroid.samsung/com.tf.thinkdroid.pdf.app.PdfRenderScreen: +1s549ms D/CordovaLog(27549): exception firing pause event from native I/Web Console(27549): exception firing pause event from native at undefined:1 ... I/InputReader(22040): dispatchTouch::touch event's action is 0 I/InputDispatcher(22040): Delivering touch to current input target: action: 0, channel '40a9f450 com.tf.thinkdroid.samsung/com.tf.thinkdroid.pdf.app.PdfRenderScreen (server)' I/InputReader(22040): dispatchTouch::touch event's action is 1 I/InputDispatcher(22040): Delivering touch to current input target: action: 1, channel '40a9f450 com.tf.thinkdroid.samsung/com.tf.thinkdroid.pdf.app.PdfRenderScreen (server)' .... D/DroidGap(27549): Resuming the App

4

2 に答える 2

0

OPと同じ問題があり、後で多くの失敗したアプローチがあり、次の解決策にたどり着きました(Cordova 3.1.0およびSamsung Galaxy S3でテスト済み):

解決

まず、ファイル システムをリクエストしてファイルを取得し、次にfileTransfer.download()を使用してサーバーからダウンロードします。ダウンロードが完了したら、FileOpener を呼び出します (Adobe Reader などのアプリから選択するポップアップが開きます)。注: CLI/ターミナル経由で FileTransfer 機能を含めるようにしてください: cordova plugin add org.apache.cordova.file

  • プロジェクト フォルダーに移動します。
  • CLI/ターミナルを開き、次のように入力します。cordova plugin add https://github.com/don/FileOpener.git
  • ファイルのダウンロードとデバイスへの保存が成功したら (上記を参照)、次のコマンドでファイルを開きます。window.plugins.fileOpener.open("file:///sdcard/Android/data/com.example.application/document.doc")

それでおしまい!幸運を!

于 2014-01-07T06:44:30.727 に答える
0

これはあなたの場合にうまくいくと思います:

if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {
  webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}

元の回答はこちら: HTML5 Phonegapped Android アプリでローカル ファイルを開くことを許可する

于 2013-08-28T19:23:16.937 に答える