简体   繁体   中英

[Cordova][Android] Sockets not connecting when running on release build

I'm currently trying to publish a cordova app on google play store...

However when I run the release build from the store the app does not connect to the sockets.

I am using LaravelEcho with SocketIo client.

  • cordova - 9.0.0 (cordova-lib@9.0.1)
  • angular - 8.1.2
  • socket.io - 2.1.4
  • laravel-echo - 1.6.1

After I searched the problem I found some results about a permission, but I already have that.

<uses-permission android:name="android.permission.INTERNET" />

Is it possible to debug the app in the release mode?

update

This is how I imported the NgxLaravelEchoModule

NgxLaravelEchoModule.forRoot({ userModel: 'App.Models.User', notificationNamespace: 'App\\\\Notifications', options: { broadcaster: 'socket.io', host: environment.socketsURL } }),

update

I managed to pint an error message thrown by socket module

xhr poll error

I spent hours upon hours searching for the answer to this question (and I know this post is old but perhaps it could help someone). Not one person could answer this. Though, I believe the true answer is that, by default, Android does not like http. Instead, a solution is to use https on whatever your socket.io client is. But that's annoying to setup.

A better solution is to allow http on the Android application. In your AndroidManifest.xml, find "application". It should look like this by default:

<application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true">

Append android:usesCleartextTraffic="true" to this to get the following:

<application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:usesCleartextTraffic="true">

Compile your apk and run it on an Android device. And voila! You can now connect to your sockets on the release build.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM