我正在使用Flash Builder,Flex 4.6和AIR 3.5为IOS构建一个移动应用程序。我正在研究如何使用StageWebView来呈现一些HTML5内容。
我想要做的是将内容构建到应用程序中,而不是将其放在服务器上。它是相对静态的。但我读到(并确认)应用内文件不能被StageWebView直接使用。但根据建议,我让应用程序将内容复制到一个临时文件夹中,然后为StageWebView创建一个文件:// URL,这似乎是可行的:
// create the view
var webView:StageWebView = new StageWebView();
webView.stage = this.stage;
webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight);
// copy the HTML5 content to a temp directory
var src:File = File.applicationDirectory.resolvePath("myFolder");
var temp:File = File.createTempDirectory().resolvePath("myFolder");
copyFolderContentsToAnotherFolder(src,temp);
// what's the URL
var newPath:String = "file://" + temp.nativePath + "/index.html";
// load it
webView.loadURL(newPath);这是个坏主意吗?临时文件是否会堆积在我的设备中,无法删除?
我还考虑让应用程序实现一个最小的HTTP服务器,方法是侦听一个端口,并在请求的文件到来时提供数据。这将允许我们将文件从它们在应用程序中的位置提供到StageWebView,而不需要复制。我们在一个桌面air应用程序中做到了这一点,它工作得非常好。但是,这种方法使用ServerSocket,我发现它在移动设备上不受支持。有没有其他方法可以做到这一点?
最后,StageWebView在Flash Builder iOS模拟器中不能很好地工作,这使得调试变得困难。是不是最好直接去拿FB4.7,它(应该)允许我在XCode的iOS模拟器上使用它?
谢谢
发布于 2013-02-14 01:14:01
好吧,看起来我可以直接处理应用程序内的内容,我只需要为它构造一个file:// URL:
var src:File = File.applicationDirectory.resolvePath("myFolder/index.html");
var newPath:String = "file://" + src.nativePath;
webView.loadURL(newPath);发布于 2013-09-09 07:01:18
我已经很久没有想过这个问题了。但据我回忆,我可以在iOS的应用程序内容中使用,而不需要制作副本。但我今天读到,这在Android上可能是不可能的。
发布于 2013-11-01 09:33:30
似乎当与iOS一起使用时,StageWebView对远程文件的处理效果最好。因此,我使用一些Actionscript代码来实现一个简单的HTTP服务器,提供本地文件。然后,我提供了使用本地主机的StageWebView http和一个端口号。效果很好。
https://stackoverflow.com/questions/14844652
复制相似问题