[英]Ionic emulate ios only works with --livereload
我正在構建一個簡單的ionic應用程序,當我用ionic serve --lab
測試時,一切看起來都不錯,但是,當我嘗試使用ionic serve --lab
ionic emulate ios
或ionic emulate android
在模擬器上進行仿真時,該應用程序沒有加載(似乎所有JS都無法通過)。 我能夠附加調試器,並且沒有任何控制台錯誤。
但是,當我嘗試使用ionic emulate ios --livereload
運行該應用程序時,一切似乎都可以正常工作。
我從頭開始嘗試了另一個示例應用程序,以排除我的機器環境,並且工作正常。
關於如何在沒有--livereload的情況下如何運行仿真的任何想法?
我今天有同樣的問題。 我通過刪除ios構建未檢測到的某些角度依賴性解決了該問題。 檢查您的jslint是否有任何警告,這些警告可能會提供有關哪些依賴項可能被錯誤注入或丟失的更多信息。
有關更多信息,請在Ionic論壇上查看此評論 。
在我的案例中,白屏死機是由於對涼亭組件的錯誤引用引起的。
在我們的構建過程中,與應用程序打包到“ www”(bower組件被復制到根目錄)相比,bower組件的相對位置是“源”。
提供服務時,以下參考有效(如果將鼠標懸停在Chrome檢查器中的鏈接上,則“ ..”將被刪除),但在設備/仿真器上啟動時則無效:
<script src="../bower_components/angular/angular.js"></script>
實時重新加載有效,因為未從設備的文件系統提供應用程序 。 取而代之的是,Ionic從主機上為它提供服務,並且大概是錯誤的相對路徑(“ ..”)在瀏覽器中進行測試時被默默地忽略了。
解決以下問題的路徑已解決:
<script src="bower_components/angular/angular.js"></script>
懸而未決的問題是,為什么應用程序的任何組件都不會引發明顯的錯誤。
這樣開始仿真
$ ionic emulate android -l -c
這將模擬livereload並登錄到控制台 。
現在,您應該查看導致錯誤的原因,並在終端上登錄。
通常,缺少缺少的Cordova Whitelist插件 。 如您在這里所讀,只需執行以下步驟即可使該插件正常工作。
$ ionic plugin add https://github.com/apache/cordova-plugin-whitelist.git
如果尚未添加。
在項目根目錄下打開config.xml
並將此行添加到<widget>
標記內。
<allow-navigation href="*" />
就我而言,此問題是由於index.html中包含<base href="/">
而引起的,這不會阻止Ionic(通過--livereload)查找本地托管的文件,但完全阻止了Ionic在其中查找文件。捆綁的iOS或Android應用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.