AIR的URL方案

今天FLEX群里有个兄弟提起AIR缓存清除,我又去官方文档转悠了圈,顺便看到AIR的URL方案,有两个没用过的app:app-storage: 详细情况:

下面的标准URL方案是可以在AIR的任何安全沙箱中都支持的: http:https: 这两个当然就是网页URL file: 这个当然就是本地文件URL

下面的方案用于运行在应用程序安全沙箱的内容: app: 使用这个可以指定相对于应用程序安装目录(也就是应用程序源目录)的顶级(就是包含应用描述文件的目录)的路径。比如下面这个就是指向应用程序顶级目录下的resources子目录: app:/resources

在ADL应用程序中运行时,应用程序源目录为放置应用描述文件的目录。 app-storage: 指定相对于应用程序存储目录的路径。AIR为每个用户定义一个唯一应用程序存储目录,该目录用于存放应用程序的设置信息。该目录地址取决于 用户名、AIR应用ID(application ID)和发布者ID(publisher ID)

具体讲,对windows来说在user name/Application Data/applicationID.publisherID/Local Store/ 比如C:DOCUMENTS AND SETTINGSBABBAGEAPPLICATION DATACOM.EXAMPLE.TESTAPP.02D88EEED35F84C264A183921344EEA353A629FD.1LOCAL STORE

对Mac OS来说在/Users/user name/Library/Preferences/applicationID.publisherID/Local Store/ 比如/USERS/BABBAGE/LIBRARY/PREFERENCES/COM.EXAMPLE.TESTAPP.02D88EEED35F84C264A183921344EEA353A629FD.1/LOCAL STORE

用File.applicationStorageDirectory创建的文件对象的URL(和url属性)就是app-storage URL方案,像这样: var dir:File = File.applicationStorageDirectory; dir = dir.resolvePath("preferences"); trace(dir.url); // 输出:app-storage:/preferences

就像FileStream对象或者Sound对象那样,你可以使用用这些URL方案定义指向N多不同对象URL请求的URLRequest对象。同样可以在运行于AIR的HTML内容中使用这些URL方案;比如,你能把他们用于IMG标签的src属性。 不过,在应用程序安全沙箱的内容中,你只能使用AIR特有的URL方案(app:和app-storage:)

参考文献:http://livedocs.adobe.com/air/1/devappsflash/security_1.html#1043607(AIR安全). (难免有误,敬请指出.)


技术内容转载请注明来源,个人日记不允许转载,欢迎指出任何有错误或不够清晰的表达。可以邮件至 mousebomb@gmail.com