我正在使用 Flash Builder、Flex 4.6 和 AIR 3.5 为 IOS 构建一个移动应用程序。我正在研究使用 StageWebView 呈现一些 HTML5 内容。
我想做的是将内容构建到应用程序中,而不是将其放在服务器上。它是相对静态的。但我读到(并确认)StageWebView 不能直接使用应用内文件。但是根据建议,我让应用程序将内容复制到临时文件夹,然后为 StageWebView 创建一个 file:// 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 提供文件,而无需复制。我们在桌面空中应用程序中执行此操作,并且效果非常好。但是,该方法使用 ServerSocket,我发现移动设备不支持该方法。有没有其他方法可以做到这一点?
最后,StageWebView 在 Flash Builder iOS 模拟器中不能很好地工作,导致调试困难。最好只是去获取 FB 4.7,它(应该)允许我将它与 XCode 的 iOS 模拟器一起使用吗?
谢谢