我正在尝试在webStageView的实例中加载本地HTML(存在于项目的文件夹结构中)。虽然这在Windows和ipad / iphone中运行良好 - 但它无法在Android中找到文件(仅在2.2中尝试过)
File.applicationDirectory.url返回“app:” File.applicationStorageDirectory.url返回“app-storage:”
File.applicationDirectory.nativePath返回一个空字符串,如Adobe文档中所述。
问题是webview提供了“网页不可用,app:/ test/index.html not found”错误。有没有办法获得完整路径,或“强制”浏览器了解该应用程序:指的是特定文件夹?
谢谢!
答案 0 :(得分:0)
不支持app:和app-storage:方案。
在iOS上你的代码运行得很好,但是在Android上,你必须使用像你这样的hacky实现来实现它,因为与StateWebView相关的安全问题从这些目录中加载url。另一个解决方案是将您的app:或app-storage:文件复制到临时文件中,并将该临时文件URL加载到StageWebView中:
var htmlFile:File = File.applicationDirectory.resolvePath(url);
var workingFile:File = File.createTempFile();
htmlFile.copyTo(workingFile, true);
stageWebView.loadURL(workingFile.url);
编辑:另一种解决方案可能是将您的html内容编码为.as文件并使用StageWebView.loadString()方法。请记住,您必须为Android设备编码该字符串。
答案 1 :(得分:0)
我每隔几天就解决这个问题。文件:URL方案是指客户端计算机上的文件。文件中没有主机名:scheme;你只需提供文件的路径。因此,本地计算机上的文件将是file:///~User/2ndFile.html。注意三个斜杠; URL的主机名部分为空,因此路径开头的斜杠紧跟URL开头的双斜杠。您还需要扩展用户的路径; 〜不会扩展文件:URL。因此,您需要file:///home/User/2ndFile.html(在大多数Unix上),file:///Users/User/2ndFile.html(在Mac OS X上)或file:/// C:/ Users / User / 2ndFile.html(在Windows上)。 此解决方案在我的应用中完美运行。