【问题标题】:Phonegap, iphone - applicationDidFinishLaunching not invokingPhonegap,iphone - applicationDidFinishLaunching 未调用
【发布时间】:2011-03-25 05:47:33
【问题描述】:

我正在尝试开始使用 Phonegap。

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

我为每个 init 和 applicationDidFinishLaunching 方法添加了断点(日志、继续)。这证实了后者确实没有被调用。

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

谢谢

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

【问题讨论】:

    标签: iphone cordova


    【解决方案1】:

    发生这种情况的原因是 Phonegap Xcode 模板对应用程序加载事件使用了错误的 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,它永远不会被调用。

    【讨论】:

      【解决方案2】:

      我是 iphone 开发新手。但是我已经使用 phonegap 框架做了一个小应用程序。

      是的,当我们使用 phonegap 框架时,我们项目的 applicationDidFinishLaunching 不起作用,并且应用委托中的 webViewDidFinishLoad 和 webViewDidStartLoad 等其他方法也不起作用..

      我们的phonegap项目中包含的PhoneGapLib.xcodeproj的这个applicationDidFinishLaunchinWithOptions被执行了。

      尝试编写 NSLog();那里。你会在控制台上得到输出..

      【讨论】:

      • 所以,“因为它不起作用”似乎是正确的答案:-) 谢谢。
      猜你喜欢
      • 2011-12-16
      • 2023-03-25
      • 2018-04-29
      • 2011-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多