2013-03-07 377 views
1

我正在使用PhoneGap,Xcode,HTML和JavaScript開發iPhone應用程序。我有一個應該查看文檔的iFrame(現在我正在使用測試文檔,而不是允許用戶選擇 - 稍後會提供)已下載的文件(同樣,我選擇了文檔)。我嘗試使用iPhone支持的.pdf文件和.docx文件,但單擊我編碼的按鈕將在Safari中打開它們而不是iFrame。以下是查看文檔的代碼(JavaScript和HTML);無法在iFrame中打開.PDF或.DOC(X)

function viewOnline() { 
     var site = "file://" + pathToRoot + "/editme.txt" 
     $('#myIframe').attr('src', site); 
    } 

    <button onclick="viewOnline();">View Online</button></li> 

    <iframe id="myIframe" style="width: 210; height: 210px;" seamless="seamless" src=""></iframe> 

難道僅僅是不可能在iFrame中查看.pdf等文件,或者我的代碼有問題嗎?

** pathToRoot在應用程序中的其他地方被編碼(並且測試是正確的) - 所以我不需要對文件路徑進行硬編碼,當我將其傳輸到設備而不是模擬器時,這將會改變。

**如果你需要在哪裏下載的文件中的代碼,然後我可以給你了 - 下面

**我也相當新的與Xcode和PhoneGap的工作只是發表意見,所以如果我需要改變與他們的東西,如果你能得到儘可能多的細節可能將是巨大的 - 非常感謝提前

編輯

我瞭解OpenWhitelistURLsInWebView,並啓用它,並允許網站我」從ExternalHosts數組下載 - 但它仍然不會w掃。

+1

[mobilesafari不會根據這個帖子顯示pdf](http://stackoverflow.com/a/8548880/1986499) – Imperative 2013-03-07 10:20:57

回答

2

這是不可能的。大多數移動瀏覽器不會預裝Adobe插件和全部。這不是你看到的桌面。它是一部手機。所以這是不可能的,除非你創建一個自己的瀏覽器幷包含adobe插件(這意味着你必須編寫pdf再現邏輯,因爲插件不能在移動設備上工作)。

+0

iPhone手機渲染PDF文件就好了。由於cordova本質上是一個xcode項目中的webview,我沒有看到爲什麼這不起作用的原因? – 2013-03-07 10:28:19

+0

@MartinSommervold:對不起,在機器人方面思考。此外,我還沒有真正嘗試過使用iPhone – karthick 2013-03-07 10:32:38

1

iFrames是非常少需要的,經常因爲錯誤的原因而被僱用。通常,您可以使用普通樣式和更簡單的標記來達到完全相同的效果。

此外,谷歌搜索phonegap /科爾多瓦iframe給出了許多結果,說明與iFrames的麻煩。有關他們的官方影響指南,請參閱iFrame Usage

你的情況,這些都是你需要考慮的事情:在PhoneGap的-IOS

啓用iFrame中,您需要加入白名單的 iframe的域,並啓用「OpenAllWhitelistURLsInWebView」。雖然這個 聽起來不像是個問題,但許多應用程序想要在MobileSafari中打開特定的 網站(不是ChildBrowser),當啓用「OpenAllWhitelistURLsInWebView」時,很容易實現 。

要更改OpenAllWhitelistURLsInWebView,請打開 Xcode中的Cordova.plist文件。

將域列入白名單。將它添加到 Cordova.plist文件中的ExternalHosts數組中。只需按下ExternalHosts標題 旁邊的+,當item0出現在下方時,將您的域添加到值部分 (格式爲example.com)。

+0

中的文件協議,但我已經看到OpenAllWhitelistURLsInWebView的事情,但我已啓用它,並將其放入我正在從網站下載,但它仍然無法工作 - 這就是爲什麼我'米問。對不起,我應該把它放進去。我現在編輯它 – 2013-03-07 10:30:54