Phonegap,iphone - applicationDidFinishLaunching not invoking

Ric*_*ich 0 iphone cordova

我正在尝试使用Phonegap.

我已经为applicationDidFinishLaunching添加了一些代码,但这似乎没有被调用.

我已经为每个init和applicationDidFinishLaunching方法添加了断点(log,continue).这证实后者确实没有被调用.

Xcode,Objective-C和Phonegap对我来说都是陌生的,所以我有点迷失了如何解决这个问题.

谢谢

编辑:我刚刚尝试创建一个全新的空白未修改的phonegap项目,同样的事情发生.init断点触发,但applicationDidFinishLaunching没有.

小智 5

之所以发生这种情况,是因为Phonegap Xcode模板对app load事件使用了错误的UIApplication方法.从iOS 4.0及更高版本开始,Apple建议使用didFinishLaunchingWithOptions而不是applicationDidFinishLaunching,因为前者包含选项参数,可让开发人员了解应用程序的调用方式.由于iOS 4.0及更高版本支持后台处理,因此该应用程序可能已从Apple推送通知启动,需要进行适当处理.

因此,要解决此问题,您需要删除AppDelegate.m文件中引用applicationDidFinishLaunching的代码,并包含以下代码:

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
     //     Add custom code here

     return [ super application:application didFinishLaunchingWithOptions:launchOptions ];
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,Phonegap 0.9.3库在PhoneGapDelegate.m中具有正确的didFinishLaunchingWithOptions实现,但主XCode模板仍然引用applicationDidFinishLaunching,它永远不会被调用.