Android中的webStageView本地HTML路径
Posted
技术标签:
【中文标题】Android中的webStageView本地HTML路径【英文标题】:webStageView local HTML path in Android 【发布时间】:2011-10-12 20:19:39 【问题描述】:我正在尝试在 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”错误。有没有办法获取完整路径,或“强制”浏览器理解该应用:指的是特定文件夹?
谢谢!
【问题讨论】:
我通过使用指向SD卡的documentsDirectory暂时“修复”了这个问题。相当黑客,但工作正常(当然是暂时的) 【参考方案1】:作为Adobe help states:
不支持 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 设备对该字符串进行编码。
【讨论】:
【参考方案2】:我会在几天内解决这个问题。文件: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:/用户/用户/2ndFile.html(在 Windows 上)。 该解决方案在我的应用程序中完美运行。
【讨论】:
以上是关于Android中的webStageView本地HTML路径的主要内容,如果未能解决你的问题,请参考以下文章