![](/img/trans.png)
[英]how do I open a newly written file from application storage directory in as3 / flex mobile?
[英]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.nativePath
和File.url
都會為您提供一個使用app://
或app-storage://
(或任意數量的其他)的URL,這兩者都與應用程序本身有關。 當您嘗試在瀏覽器或StageWebView
或StageVideo
打開該鏈接StageVideo
,該鏈接將變為相對於瀏覽器/視頻播放器,而不是您的應用程序。 這就是為什么你不能正確鏈接到文件。
謝天謝地,有一個簡單的解決方法。 我在很久以前的Adobe論壇帖子中發現了這個(可能被認為是“黑客”,但它有效)。 我希望我有一個來源,但我沒有:
trace( new File( file.nativePath ).url );
試試吧。 它基本上使用文件的實際本機路徑創建一個新文件。 此文件的URL是文件的完整路徑,而不是以任何方式相對於應用程序。 正如Brian所提到的,您可能最終需要使用StageWebView
,但這將為您提供正確的路徑。
作為一個快速說明,如果我沒記錯的話,這在Android上不起作用。 在Android上,您希望直接使用nativePath
或url
。 但是這個小小的解決方法可以在iOS上運行(我在應用程序商店中使用的應用程序正在使用它而沒有問題)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.