![](/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.