Заставить Angular работать в Кордове - PullRequest
0 голосов
/ 27 июня 2018

Я следовал именно этому уроку: https://medium.com/@nacojohn/convert-your-angular-project-to-mobile-app-using-cordova-f0384a7711a6

Но я получаю эту ошибку, когда я crdova build browser

ERROR Error: Uncaught (in promise): SecurityError: Failed to execute 'replaceState' on 'History': A history state object with URL 'file:///C:/Users/sven/Projects/expense-calculator/platforms/browser/www/' cannot be created in a document with origin 'null' and URL 'file:///C:/Users/sven/Projects/expense-calculator/platforms/browser/www/index.html'.
Error: Failed to execute 'replaceState' on 'History': A history state object with URL 'file:///C:/Users/sven/Projects/expense-calculator/platforms/browser/www/' cannot be created in a document with origin 'null' and URL 'file:///C:/Users/sven/Projects/expense-calculator/platforms/browser/www/index.html'.
    at BrowserPlatformLocation.push../node_modules/@angular/platform-browser/fesm5/platform-browser.js.BrowserPlatformLocation.replaceState (platform-browser.js:613)
    at PathLocationStrategy.push../node_modules/@angular/common/fesm5/common.js.PathLocationStrategy.replaceState (common.js:424)
    at Location.push../node_modules/@angular/common/fesm5/common.js.Location.replaceState (common.js:203)
    at Router.push../node_modules/@angular/router/fesm5/router.js.Router.resetUrlToCurrentUrlTree (router.js:3829)
    at Router.push../node_modules/@angular/router/fesm5/router.js.Router.resetStateAndUrl (router.js:3826)
    at router.js:3810
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388)
    at Object.onInvoke (core.js:3654)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:387)
    at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:138)
    at BrowserPlatformLocation.push../node_modules/@angular/platform-browser/fesm5/platform-browser.js.BrowserPlatformLocation.replaceState (platform-browser.js:613)
    at PathLocationStrategy.push../node_modules/@angular/common/fesm5/common.js.PathLocationStrategy.replaceState (common.js:424)
    at Location.push../node_modules/@angular/common/fesm5/common.js.Location.replaceState (common.js:203)
    at Router.push../node_modules/@angular/router/fesm5/router.js.Router.resetUrlToCurrentUrlTree (router.js:3829)
    at Router.push../node_modules/@angular/router/fesm5/router.js.Router.resetStateAndUrl (router.js:3826)
    at router.js:3810
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388)
    at Object.onInvoke (core.js:3654)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:387)
    at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:138)
    at resolvePromise (zone.js:814)
    at zone.js:877
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
    at Object.onInvokeTask (core.js:3645)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
    at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
    at drainMicroTaskQueue (zone.js:595)

Я понимаю, что это потому, что я пытаюсь работать под углом. в то время как угловые просто работают на серверах. (но почему? это просто html и js) Так есть ли решение моей проблемы? я просто хочу, чтобы приложение работало внутри файла apk, который собирает cordova.

1 Ответ

0 голосов
/ 27 июня 2018

Это проблема, из-за которой вы не можете получить доступ к своим ресурсам SPA через файл: /// протокол.

В уроке они прямо упоминали, что

Обновите тег <base href=“/”> в вашем index.html до <base href=“./”>, это позволит angular получить доступ к файлам в пути к каталогу, поскольку мы не размещаемся на сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...