根据说明here,为了使用Native API,我需要在代码中添加一个'Ext.require()'。我如何在Sencha Architect 2中做到这一点?看起来自定义函数或事件之外的所有内容都是只读的,所以我不能只是自己添加自己的代码。
答案 0 :(得分:3)
正如Bharat Nagwani所建议的,架构师现在提供了一种方法来要求任何你想动态加载的类。
Luca Candela和我提交了一个小应用程序,它说明了几周前在伦敦使用Ext.device.Camera API。 https://github.com/CaliLuke/NativeContacts
要在您的应用程序中包含设备api,请执行以下操作:
总而言之,请确保文件存在。告诉应用程序您需要该类,然后告诉加载器在哪里找到您刚刚放入项目文件夹的文件。
答案 1 :(得分:2)
Architect提供的下一次更新需要作为Application节点上的属性,因此您可以在那里添加。现在只需在Application启动函数中添加需求,因为它是可写的。
答案 2 :(得分:0)
需要代码的视图(或适用的MVC)定义了此要求,因此只有在需要时才会调用它。
Ext.define('MyApp.view.SomePageView', {
extend: 'Ext.Panel',
alias: 'widget.somepageview',
requires: [
'Ext.device.Camera', // requires go here!
'...'
]
对于本机要求(不是自定义扩展),请查看Sencha Docs上的右侧列。对于此示例,对于ST2.3.1,它可以位于here。在顶部,您可以看到Ext.device.Camera直接从Ext.Base下降,不需要Ext.device。在定义的那个需求块的底部,有Camera.js的链接。打开该链接,您可以准确地看到发生了什么。通过定义requires: ['Ext.device.Camera']
,您还可以自动加载所有这些操作要求。
在Architect中定义主MVC或S时,它会添加到Application Requires中。所以在Architect中,我将能够看到Application>下列出的SomePageView。 Ext.app.Controller>观点。在构建过程中,无论是使用Architect的构建,还是使用Sencha Cmd进行sencha app build
之类的命令行调用,这个需求下载链都将包含在最终的包中。