我正在尝试制作一个专门针对iOS平台的手机间隙应用.但是我想在WebStorm IDE中开发,将我的项目推送到存储库,然后使用PhoneGap Build.
我已经下载了PhoneGap版本3.1.0-0.15.0,为iOS平台创建了一个项目,并添加了我认为我将需要的所有插件到项目中.这一切似乎都没问题,我可以运行Xcode项目并获得一些onDeviceReady hello world程序.
现在事情让我感到困惑的是:
如果我想使用PhoneGap在WebStorm中开始构建Web应用程序,我将进入我的WebStorm项目?我需要从我的PhoneGap项目目录中取一些东西吗?如果是这样,我会采取什么样的作品?我是否需要将其作为外部库放入,或者我可以将其放入我的根目录中?
如果我也想使用像requirejs这样的模块加载器,那么如果我试图让手机间隙成为一个模块,我是否需要跳过任何额外的环节或者我会遇到的问题?或者,在加载需要之前加载我的cordova.js文件是一个更好的主意吗?
我看过很多有点点滴滴的帖子,或者有些帖子告诉你如何专门为Android设置,或者使用具有不同文件结构的早期版本的PhoneGap.但一直无法找到真正解释整个画面的东西给我.
在大多数情况下,设置委托就像在类中实现委托协议一样简单,并将该类的实例声明为您正在使用的任何实例的委托.
我实际上对SFSpeechRecognizer使用了同样的基本概念,它在我的代码中属于同一个语音框架.(伪代码示例):
class myViewControllerClass: SFSpeechRecognizerDelegate{
let mySpeechRecognizer = SFSpeechRecognizer(...)
viewDidLoad(){
mySpeechRecognizer.delegate = self
}
...
//SFSpeechRecognizerDelegate Functions here
...
}
//This works as expected, woo!
Run Code Online (Sandbox Code Playgroud)
但是,似乎SFSpeechRecognitionTask没有可以设置的委托属性.我尝试在我的课程中实现'SFSpeechRecognitionTaskDelegate'协议,希望它能够神奇地工作.但是,似乎从未调用过委托函数.哪种有意义,因为它无法知道我的视图控制器应该是委托,所以为什么会这样!?
Apple文档介绍了协议本身以及如何使用它:
https://developer.apple.com/reference/speech/sfspeechrecognitiontaskdelegate
但是任务本身的文档没有标识任何委托属性:
https://developer.apple.com/reference/speech/sfspeechrecognitiontask
另外在这里参考SFSpeechRecognizer文档,该文档具有协议AND并且标识您期望的委托属性:
https://developer.apple.com/reference/speech/sfspeechrecognizer
是否有一些替代方法我应该为SFSpeechRecognitionTask设置委托?或者是以完全不同的方式处理?