Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何调试ionic/angular/phonegap/cordova应用程序的白色屏幕?_Angularjs_Cordova_Ionic Framework - Fatal编程技术网

Angularjs 如何调试ionic/angular/phonegap/cordova应用程序的白色屏幕?

Angularjs 如何调试ionic/angular/phonegap/cordova应用程序的白色屏幕?,angularjs,cordova,ionic-framework,Angularjs,Cordova,Ionic Framework,我从事一个项目(+又称Phonegap) 我的项目的第一个代码行是4个月,昨天,应用程序不再在模拟器和真实设备上工作,但仍然可以在chrome窗口中工作。所以我想我的角度代码是正确的,但我不知道问题出在哪里,我也不知道如何处理它 开始时,我直接在我的www文件夹中进行编码,然后使用devtools和设备仿真在chrome中进行测试,或者使用Apache Ripple扩展在chrome中进行测试,有时我会将其安装到我的真实设备(Nexus S)中 我最近在我的项目中安装了grunt和bower来执

我从事一个项目(+又称Phonegap)

我的项目的第一个代码行是4个月,昨天,应用程序不再在模拟器和真实设备上工作,但仍然可以在chrome窗口中工作。所以我想我的角度代码是正确的,但我不知道问题出在哪里,我也不知道如何处理它

开始时,我直接在我的
www
文件夹中进行编码,然后使用devtools和设备仿真在chrome中进行测试,或者使用Apache Ripple扩展在chrome中进行测试,有时我会将其安装到我的真实设备(Nexus S)中

我最近在我的项目中安装了grunt和bower来执行常见任务,我决定重新组织我的项目文件夹

现在,我将代码编码到
src
文件夹中,然后:

  • 在chrome中测试之前,我运行grunt“dev”任务,它创建了一个
    www
    文件夹,并包含一个链接到
    scr/
    js、html、css和其他res文件的专用index.html
  • 在emulator或real device中进行测试之前,我运行grunt“prod”任务,该任务创建一个
    www
    文件夹,包括构建或复制所有需要的文件到应用程序(app.min.css、app.min.js、模板、字体和媒体文件、图标)
这两种应用在chrome中都可以正常工作,但当我构建(通过cordova cli或)并在emulator或real设备上安装应用程序时,我会看到启动屏幕,然后是一个永久的白色屏幕

我试图在I的帮助下调试它,并注意到js控制台没有捕获任何抛出的错误。 但是我放置了一些console.log,似乎路由被破坏了

angular.module('app').run()
已执行,但APPCRL的第一个控制器从未执行

这是我的模块代码(这篇文章的重要部分):

显示的唯一警报是:

  • app.run()运行
因此,未显示的警报包括:

  • AppCtrl正在运行
  • MainCtrl正在运行
  • HomeCtrl运行
记住,在chrome中,一切都能完美工作

这个问题真的令人困惑,我已经花了几个小时来跟踪它,但没有成功


有什么想法吗?

此状态不存在

$urlRouterProvider.otherwise('/app/main/home');  
我想应该是这样

$urlRouterProvider.otherwise('/home');  
我解决了我的问题

事实上,我编写了一个httpRequestInterceptor工厂,它检查url是否必须签名才能使用RESTAPI

我的项目文件夹的结构最近发生了变化,导致此工厂有时返回错误的结果,然后对某些本地url进行签名,导致路由错误,然后出现白屏

  • 运行ionic构建ios
  • 运行爱奥尼亚模拟ios
  • 打开Safari->Develop->Simulator->index.html(适用于您的应用程序)
  • 检查控制台是否有错误(如果有)
  • 按重新加载(通常在左上角)并监视控制台选项卡中的错误

  • 如果您正在使用Parse(或类似的),请确保在代码中使用它们之前对它们进行初始化。这是白色屏幕的常见原因。

    我们使用gapdebug调试我们的ionic应用程序。你也可以在你的设备上实时调试,如果它插入到计算机上,并且是任何模拟器的一个很好的调试器

    对我来说,我通过替换这个解决了这个问题

    $stateProvider.state('nameOfState', {
      templateUrl: '/templates/nameOfTemplate.html',
    })
    
    用这个

    $stateProvider.state('nameOfState', {
      templateUrl: './templates/nameOfTemplate.html',
    })
    

    尝试在“templateUrl”中的完整URL之前添加“.”。为我工作

    将您的手机插入笔记本电脑-然后在Eclipse中运行LogCat并查看手机上的日志?我不使用Eclipse,但如果调试效果更好,我将同时研究此解决方案。请考虑我的编辑,我添加了一些调试信息。angular ui路由器无法执行AppCtrl,但我不知道为什么……您可以使用
    adb logcat
    获取日志,但如果您使用weinre,您已经拥有了这些日志。在启动应用程序之前,您是否正在收听deviceready活动?@QuickFix不,我不在这里,但我不知道您的建议是什么。事实上,我认为这是没有必要的,但是你可以发布一个示例代码来确保理解你的想法吗?对于Cordova,如果你不在启动应用程序之前等待deviceReady事件,你可能会遇到问题(主要是在访问插件时)。我还没有测试过爱奥尼亚,所以可能是内部处理的。不,你在这一点上错了。通过在
    .config()
    方法中注入
    $stateProvider
    ,您可以看到,我使用带嵌套视图的角度ui路由器,然后URL彼此链接以指向最深的嵌套视图。这节省了我的时间!这个错误消息很容易引起误解,可能不是确切的问题,请阅读我的经验@phanikatakam.blogspot.in/2016/11/…-HydTechie刚刚编辑
    $stateProvider.state('nameOfState', {
      templateUrl: './templates/nameOfTemplate.html',
    })