使用 AngularJS 在 iOS 的 PhoneGap 3.3 中登录 XCODE

Posted

技术标签:

【中文标题】使用 AngularJS 在 iOS 的 PhoneGap 3.3 中登录 XCODE【英文标题】:Logging to XCODE in PhoneGap 3.3 for iOS with AngularJS 【发布时间】:2014-01-25 00:32:29 【问题描述】:

已经有几个关于在 phonegap 项目中登录 XCode 的问题(例如console.log not working in an ios PhoneGap 3.0 app),但我找不到任何使用 angularjs 的问题。

我已经通过

添加了控制台插件
cordova plugin add org.apache.cordova.console

正如上面答案所建议的,我也尝试了How do I integrate the PhoneGap debug console with CLI?中提到的步骤

我正在使用 angular phonegap 生成器https://github.com/dsimard/grunt-angular-phonegap

当我通过 XCode 在模拟器上运行时(除了在 app.js 和 controllers/main.js 中添加 console.log 语句以及上面链接中建议的函数之外没有任何修改),我得到以下输出:

2014-01-24 18:59:07.162 MyApp[89948:70b] Cannot find executable for CFBundle 0xa790140 </Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/System/Library/AccessibilityBundles/GeoServices.axbundle> (not loaded)
2014-01-24 18:59:07.170 MyApp[89948:70b] Cannot find executable for CFBundle 0xa7c3b80 </Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/System/Library/AccessibilityBundles/CertUIFramework.axbundle> (not loaded)
2014-01-24 18:59:07.206 MyApp[89948:70b] Multi-tasking -> Device: YES, App: YES
2014-01-24 18:59:07.211 MyApp[89948:70b] Unlimited access to network resources
2014-01-24 18:59:07.331 MyApp[89948:70b] Resetting plugins due to page load.
2014-01-24 18:59:07.440 MyApp[89948:70b] Finished load of: file:///Users/thisguy/Library/Application%20Support/iPhone%20Simulator/7.0.3/Applications/1C7F417E-347B-4262-9969-38CE9D475C05/MyApp.app/www/index.html#/

我担心指示插件已重新加载的行(并且控制台插件不是?还是什么?),但根据以下编辑的答案,这可能不是(?)问题https://***.com/a/21207066/1449799

感谢#phonegap 上的@MGyveR_,我了解到当我在 iPhone 模拟器中运行时,我的日志至少可以通过 Safari 的 Web Inspector 看到。仍然不确定为什么它们不在 XCode 控制台中。

【问题讨论】:

【参考方案1】:

我也遇到了同样的问题。事实证明,记录器的deviceready 函数没有被调用。 logger.js 中的最后一行。

document.addEventListener("deviceready", logger.__onDeviceReady, false);

解决方案(或真正的解决方法)是从您的 deviceready 侦听器函数中调用 logger.__onDeviceReady 函数:

function onDeviceReady() 
    if (window.cordova.logger) 
        window.cordova.logger.__onDeviceReady();
    


document.addEventListener('deviceready', onDeviceReady, false);

【讨论】:

以上是关于使用 AngularJS 在 iOS 的 PhoneGap 3.3 中登录 XCODE的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Express、AngularJS、Socket.io 广播和获取通知?

使用angularJs显示来自socket io的数据

使用 angularjs 和 socket.io 实时保存和显示评论

angularjs没有在iOS上更新部分

iOS 的 Ionic/AngularJS/Phonegap 键盘问题

Angularjs socket.io 服务