使用Cordova时Ionic应用程序未在服务器上运行

时间:2019-06-29 09:14:49

标签: ionic-framework ionic4

我的Ionic应用程序在运行 ionic serve 时运行良好,但是当我使用命令 ionic cordova run android --livereload 时,它无法正常运行并给出错误 “无法加载资源:net :: ERR_CONNECTION_REFUSED” 下面是离子信息

   Ionic CLI                     : 4.12.0
   Ionic Framework               : @ionic/angular 4.4.2
   @angular-devkit/build-angular : 0.13.9
   @angular-devkit/schematics    : 7.3.9
   @angular/cli                  : 7.3.9
   @ionic/angular-toolkit        : 1.5.1

科尔多瓦:

   Cordova CLI       : 9.0.0 (cordova-lib@9.0.1)
   Cordova Platforms : android 8.0.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 4 other plugins)

实用程序:

   cordova-res : not installed
   native-run  : 0.2.7

系统:

   NodeJS : v10.16.0 (C:\Program Files\nodejs\node.exe)
   npm    : 6.9.2
   OS     : Windows 10

config.xml

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.ionic.starter" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>MyApp</name>
    <description>An awesome Ionic/Cordova app.</description>
    <author email="hi@ionicframework.com" href="http://ionicframework.com/">Ionic Framework Team</author>
    <content src="index.html" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <preference name="ScrollEnabled" value="false" />
    <preference name="android-minSdkVersion" value="19" />
    <preference name="BackupWebStorage" value="none" />
    <preference name="SplashMaintainAspectRatio" value="true" />
    <preference name="FadeSplashScreenDuration" value="300" />
    <preference name="SplashShowOnlyFirstTime" value="false" />
    <preference name="SplashScreen" value="screen" />
    <preference name="SplashScreenDelay" value="3000" />
    <plugin name="cordova-plugin-whitelist" spec="1.3.3" />
<plugin name="cordova-plugin-statusbar" spec="2.4.2" /> <plugin name="cordova-plugin-device" spec="2.0.2" /> <plugin name="cordova-plugin-splashscreen" spec="5.0.2" /> <plugin name="cordova-plugin-ionic-webview" spec="^4.0.0" /> //latest version <plugin name="cordova-plugin-ionic-keyboard" spec="^2.0.5" /> </widget>

以下是我在移动设备中部署时获得的快照 enter image description here

这是我得到的错误 enter image description here

3 个答案:

答案 0 :(得分:2)

在这种情况下,一个选项是不传递-l / -livereload,该参数用于livereload功能。因此,只需运行:

ionic cordova run android

然后它将编译apk并将其部署到您的手机中,但不会运行网络服务器来监视更改。

在这种情况下,您仍然可以使用Chrome进行调试,但是如果您对标记进行了更改并按保存,它将不会自动通过该更改重新加载应用程序。您将需要再次运行ionic cordova run android来重建并将其部署到手机中。

从正面看:在第一次部署之后,随着gradle服务器的启动,后续的构建要快得多。

从正面看2:如果断开USB连接,则仍然可以使用您的应用。使用livereload部署的应用程序,一旦断开连接,它就会中断。

我实际上也很想解决您的问题。当我在共享办公空间中移动时,有时似乎网络已被某种程度地锁定,并且仅阻塞了某些端口。我还没有弄清楚为什么或者是否有解决办法。

答案 1 :(得分:0)

一个临时解决方法是设置基本href =“。”在index.html中。 但是不会加载您的图标。

永久修复:

ionic cordova platform remove android
ionic cordova platform add android@7.1.0
ionic cordova plugin remove cordova-plugin-ionic-webview
ionic cordova plugin add cordova-plugin-ionic-webview@latest

答案 2 :(得分:0)

您需要一些东西来将来自android设备的localhost:8080请求代理回运行livereload服务器的开发箱中。

您可以通过在Chrome浏览器中打开端口chrome://inspect/#devices,通过chrome浏览器进行端口转发,或者直接在电话的连接属性本身上配置端口转发。我用它来通过Windows开发箱上的Fiddler观看流量。

还可以通过配置service proxies,将ionic livereload服务器配置为路由非离子流量。