2011-07-26 57 views
1

使用HTML/JS SDK構建AIR應用程序。Adob​​e AIR不會包含遠程文件!

只要它們與我的網站位於同一個文件夾中,我就可以包含腳本和樣式表,但是不包含從Internet獲取的遠程內容!沒有遠程腳本,既不是從jquery也不是從谷歌...我把<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">沒有任何反應!每個文件都是這種情況,而不僅僅是這一個。

你有沒有遇到過這個問題?在AIR文檔中,他們似乎總是向我們展示大型混搭和遠程內容,但它仍然不適合我!

回答

2

您可以在AIR中完成此操作,但您需要解決安全限制,因爲默認情況下,您無法從加載的第一個框架執行此操作。謝天謝地,這不是太難。

您需要在主html頁面(例如index.html)中創建一個iframe並將所有內容加載到該頁面中。然後,您的主html頁面將充當各種控制器,允許您調用需要增強安全權限的方法(文件系統等),同時允許加載到iframe中的任何代碼加載外部媒體和腳本,並允許使用JavaScript eval和其他在應用程序主框架中被阻止的方法。

你可以閱讀在這裏http://help.adobe.com/en_US/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7f08.html#WS5b3ccc516d4fbf351e63e3d118666ade46-7f07

所以你理解的概念閱讀完整的頁面,但要特別注意的sandboxRoot,當你設置的iframe的DocumentRoot屬性。

+0

好的,但然後空氣變成一個無鉻瀏覽器,沒有更多,對吧? – Cystack

+0

只在較低的框架中。主頁面(index.html)仍然具有所有增強的安全權限,因此它可以完成典型Web瀏覽器環境無法完成的任務,例如使用文件系統,桌面和數據。使用parentSandboxBridge(請參閱我答案中的鏈接),可以將這些方法公開給子框架中的頁面。這是兩全其美的:) – sidogg

+0

我還會補充一點,NativeProcess類允許你調用一個外部應用程序,然後你可以做任何你想做的事情,並且你可以很容易地與原始的AIR應用程序進行通信。 – sidogg