簡體   English   中英

Flex 4 mobile ios從瀏覽器中的應用程序屬性打開文件

[英]Flex 4 mobile ios open a file from application properties in browser

我正在應用程序存儲目錄中保存一個文件,我想通過執行navigateToURL(新的URLRequest(file.nativePath))使用ios瀏覽器打開它。 但文件沒有打開。 我知道它應該有效,因為如果我導航到谷歌瀏覽器打開正確。 所以問題是我在瀏覽器中放置文件的文件路徑。

有人知道我在瀏覽器上放置的文件路徑是什么,以訪問應用程序存儲目錄中的文件。

請參閱Objective-c / iOS - 使用Safari打開本地html文件, 使用iPad上的Web瀏覽器在apple.stackexchange.com 上查看本地HTML文件 基本上,ios安全模型可以防止這種情況發生。

你可以做的是使用StageWebView

 var webView:StageWebView = new StageWebView();
 webView.stage = this.stage;
 webView.viewPort = new Rectangle( 0, 50, stage.stageWidth, stage.stageHeight );
 webView.loadURL(file.nativePath); // or file.url

StageWebView顯示在應用程序中所有其他組件的頂部,因此您需要留下一個邊距(如上面包含的50像素偏移量),以便為按鈕關閉StageWebView。

另請參見StageWebView文檔

你的路徑不正確是正確的。 基本上, File.nativePathFile.url都會為您提供一個使用app://app-storage:// (或任意數量的其他)的URL,這兩者都與應用程序本身有關。 當您嘗試在瀏覽器或StageWebViewStageVideo打開該鏈接StageVideo ,該鏈接將變為相對於瀏覽器/視頻播放器,而不是您的應用程序。 這就是為什么你不能正確鏈接到文件。

謝天謝地,有一個簡單的解決方法。 我在很久以前的Adobe論壇帖子中發現了這個(可能被認為是“黑客”,但它有效)。 我希望我有一個來源,但我沒有:

trace( new File( file.nativePath ).url );

試試吧。 它基本上使用文件的實際本機路徑創建一個新文件。 此文件的URL是文件的完整路徑,而不是以任何方式相對於應用程序。 正如Brian所提到的,您可能最終需要使用StageWebView ,但這將為您提供正確的路徑。

作為一個快速說明,如果我沒記錯的話,這在Android上不起作用。 在Android上,您希望直接使用nativePathurl 但是這個小小的解決方法可以在iOS上運行(我在應用程序商店中使用的應用程序正在使用它而沒有問題)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM