对于一个非常特殊的情况,我想存储我在localStorage中从远程加载的Dojo类(即源代码),以便在离线情况下访问它们(我们正在谈论混合移动应用程序)。我把所有东西都运行了,但是dojo.eval不会让我从像这样的字符串创建类
var data = 'define(["dojo/_base/kernel",...'; // class definition as string
dojo.eval(data);
知道怎么做到这一点吗?
答案 0 :(得分:0)
如果您需要让您的应用离线运行,请将资源(css,images,js)存储在app manifest中。清单文件如下所示。
{
"name": "My App",
"description": "My elevator pitch goes here",
"launch_path": "/",
"icons": {
"128": "/img/icon-128.png"
},
"developer": {
"name": "Your name or organization",
"url": "http://your-homepage-here.org"
},
"default_locale": "en"
}
您的应用可能需要数百个模块,因此为了清单的性能和可管理性,您需要创建一个Dojo build,这会将js文件的数量减少到一个或几个,具体取决于您创建的方式构建。
答案 1 :(得分:0)
我终于完成了我想要完成的任务。但是,我发现无法使用localStorage并从字符串加载类。 诀窍是使用XHR从远程加载Dojo类源文件,使用Cordova文件API存储它,获取存储文件的URL并在require()中使用此URL。 做我想要的并让我完全控制缓存的文件。