我正在应用程序存储目录中保存文件,我想通过执行navigateToURL(新的URLRequest(file.nativePath))使用ios浏览器打开它。但文件没有打开。我知道它应该有效,因为如果我导航到谷歌浏览器打开正确。所以问题是我在浏览器中放置文件的文件路径。
有人知道我在浏览器上放置的文件路径是什么,以访问应用程序存储目录中的文件。
答案 0 :(得分:1)
请参阅apple.stackexchange.com上的Objective-c/iOS - Open local html file with Safari和View local HTML files using web browser on iPad。基本上,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。
答案 1 :(得分:1)
您的路径不正确是正确的。基本上,File.nativePath
和File.url
都会为您提供使用app://
或app-storage://
(或其他任意数量)的网址,这两者都与应用本身有关。当您尝试在浏览器或StageWebView
或StageVideo
中打开该链接时,该链接将相对于浏览器/视频播放器而非您的应用。这就是为什么你无法正确链接文件。
谢天谢地,有一个简单的解决方案。我在很久以前的Adobe论坛帖子中发现了这个(可能被认为是“黑客”,但它有效)。我希望我有一个来源,但我没有:
trace( new File( file.nativePath ).url );
试试吧。它基本上使用文件的实际本机路径创建一个新文件。此文件的URL是文件的完整路径,而不是以任何方式相对于应用程序。正如Brian所提到的,你可能最终需要使用StageWebView
,但这会给你正确的路径。
快速说明,如果我没记错的话,这在Android上无效。在Android上,您希望直接使用nativePath
或url
。但是这个小小的解决方法可以在iOS上运行(我现在在应用程序商店中使用的应用程序正在使用它而没有问题)