2013-03-04 144 views
2

我目前正在使用PhoneGap。我使用eclipse作爲我的IDE。我正在開發的平板電腦是三星Galaxy Tab 10.1,android版本4.0.4。PhoneGap打開PDF錯誤「文檔無法打開」

現在我試圖通過我的應用程序在設備上打開PDF。但它不起作用。我按照這個頁面上的教程https://github.com/markeeftb/FileOpener

以下是我所做的更改。

- >在src文件夾中,我創建了一個名爲com.phonegap.plugins.fileopener的新文件夾 - >我將FileOpener.java文件複製並粘貼到該文件夾​​中。 - >然後在位於XML文件夾中的config.xml文件,我增加了行

<plugin name="FileOpener" value="com.phonegap.plugins.fileopener.FileOpener"/> 

- >我還加了一行

<script type="text/javascript" charset="utf-8" src="fileopener.js"></script> 

到我的index.html文件

這裏是index.html的代碼

<!DOCTYPE HTML> 
<html> 
    <head> 
     <title> PhoneGap </title> 
     <script type="text/javascript" charset="utf-8" src="cordova-2.3.0.js"></script> 
     <script type="text/javascript" charset="utf-8" src="fileopener.js"></script> 
    </head> 
    <body> 
     <h1>PDF Open Tester</h1> 
     <a href="#" onclick="window.plugins.fileOpener,open('/sdcard/Course Content Files/1.pdf');">open</a> 
    </body> 
</html> 

正如進一步的信息,一旦我連接到我的電腦上的平板電腦,當我右鍵點擊1.pdf,並檢查屬性文件位置是計算機\ GT-P7510 \平板電腦

當我在平板電腦上運行此項目,然後單擊打開的鏈接。 Adobe Reader應用程序在主頁上打開,顯示「文檔無法打開」。怎麼回事爲什麼pdf不能用Adobe Reader打開?請幫助,如果你能我真的很感激它。

----------------------------------- After Edit 1 -------- -------------------------------------------------- -------------------------

我發現了正在發生的特定錯誤。錯誤是對象#沒有方法'執行'

+1

一般是不好的做法,硬編碼'/ SD卡/'到您的文件路徑。在java中你可以使用'Environment.getExternalStorageDirectory()'。我不知道是否有與手機中的相同的內容。但我的猜測是,您的設備不會將其外部存儲標記爲'/ sdcard /',因此您試圖讓它加載一個不存在的文件。 – FoamyGuy 2013-03-04 16:34:38

+0

我thoguth getExternalStorageDirectory()只適用於appcelerator。 – 2013-03-04 16:37:48

+1

不,它是Java API的一部分,appcelerator可能會使用它(我不知道,但是除了native以外沒有任何經驗)。它看起來像你在github頁面上的例子,你可能需要預先安裝file file path with'file://',儘管如此,您可以嘗試將URL更改爲'file:/// sdcard/Course Content Files/1.pdf'注意,即使這可以在您的設備上正常工作,它仍然會失敗由於外部目錄不在'/ sdcard /'中,這就是爲什麼Environment API存在的原因,因此您的應用程序無需關心它所在的位置。 – FoamyGuy 2013-03-04 16:41:44

回答

2

FileOpener插件期待一個URI,並且你傳遞它一個文件路徑。

變化:

'/sdcard/Course Content Files/1.pdf' 

到:

'file:///sdcard/Course Content Files/1.pdf'