Phonegap,iphone - applicationDidFinishLaunching not invoking

时间:2011-02-18 12:38:29

标签: iphone cordova

我正在尝试使用Phonegap。

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

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

Xcode,Objective-C和Phonegap对我来说都很陌生,所以我对如何解决这个问题感到有点迷失。

感谢

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

2 个答案:

答案 0 :(得分: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 ];
}

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

答案 1 :(得分:1)

我是iphone开发的新手。但是我使用phonegap框架完成了一个小应用程序。

是当我们使用phonegap框架时,我们的Project的applicationDidFinishLaunching不起作用,而appawate中的webViewDidFinishLoad和webViewDidStartLoad等其他方法也无效..

而不是我们的phonegap项目中包含的PhoneGapLib.xcodeproj的applicationDidFinishLaunchinWithOptions取代了。

尝试编写NSLog();那里。你将在consol上获得输出..