繁体   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