簡體   English   中英

[Cordova][Android] 在發布版本上運行時套接字未連接

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

我目前正在嘗試在 Google Play 商店上發布 Cordova 應用程序...

但是,當我從商店運行發布版本時,應用程序不會連接到套接字。

我正在將 LaravelEcho 與 SocketIo 客戶端一起使用。

  • 科爾多瓦 - 9.0.0 (cordova-lib@9.0.1)
  • 角度 - 8.1.2
  • socket.io - 2.1.4
  • laravel 回聲 - 1.6.1

搜索問題后,我發現了一些有關權限的結果,但我已經有了。

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

是否可以在發布模式下調試應用程序?

更新

這就是我導入 NgxLaravelEchoModule 的方式

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

更新

我設法找出了套接字模塊拋出的錯誤消息

xhr poll error

我花了幾個小時尋找這個問題的答案(我知道這篇文章很舊,但也許它可以幫助某人)。 沒有人能回答這個問題。 不過,我相信真正的答案是,默認情況下,Android 不喜歡 http。 相反,解決方案是在您的 socket.io 客戶端上使用 https。 但設置起來很煩人。

更好的解決方案是在 Android 應用程序上允許 http。 在您的 AndroidManifest.xml 中,找到“應用程序”。 默認情況下它應該是這樣的:

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

android:usesCleartextTraffic="true"附加到此以獲得以下內容:

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

編譯您的 apk 並在 Android 設備上運行它。 瞧! 您現在可以連接到發布版本上的套接字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM