ionic之启动失败

作者: 武昌鱼艾特222 | 来源:发表于2018-02-07 14:15 被阅读259次

    如果你使用ionic2.0以上版本打包后的APP启动失败了,一般有一下几个原因:

    1.TypeScript代码编译没通过(一般没有去修改Android和iOS 代码,所以先检查TypeScript),首先在根目录下执行 ionic serve 指令,如果在游览器中没有正常打开,则TypeScript代码肯定有问题了,根据提示修改就行了。如果正常打开,则接着往下检查。

    2.排除了TypeScript的问题,接下来就要检查Android和iOS 了。一般这时候的启动失败最大的原因应该是加载超时。

    Android解决办法:在根目录下找到platforms\android\CordovaLib\src\org\apache\cordova\CordovaWebViewImpl.java,然后打开找到如下代码:

    我们找到timeoutCheck方法,这个方法是用来检测加载是否超时,currentLoadUrlTimeout这个变量默认是20秒,你可以修改这个变量使时间更长一点,但最好的解决方法是禁用超时检测,我们可以注销cordova.getActivity().runOnUiThread(loadError);这一行代码。

    IOS解决办法:在根目录下找到platforms\ios\CordovaLib\Classes\Public\CDVViewController.m。然后打开找到如下代码:

    注意看这行代码NSURLRequest* appReq = [NSURLRequest requestWithURL:appURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0];

    其中timeoutInterval这个参数是打开URL的超时时间,我们可以传入一个更大的值。

    超时的最优解决方案:

    使用ionic打包Android、iOS生产环境时,执行ionic cordova build android --prod 或 ionic cordova build ios --prod。这个命令会压缩main.js和mian.css代码。这时启动APP基本上时间在两秒钟左右,肯定不会超时了。

    但是一般在执行这个命令时会出现各种各样的编译问题,最常见的是在webpack打包时合并代码数组越界,这时我们在根目录下找到node_modules\@ionic\app-scripts\config\webpack.config.js。打开找到如下代码,去掉ModuleConcatPlugin这个插件就可以了。

    如果还有其他问题,可以留言讨论。

    相关文章

      网友评论

      • 何欢_dfd9:受教了
      • 9eb9ceacc42a:这波分析层层深入啊,,这种问题不算复杂,但是遇到确实让人着急,学习了。:+1:

      本文标题:ionic之启动失败

      本文链接:https://www.haomeiwen.com/subject/xbwozxtx.html