[英][Cordova][Android] Sockets not connecting when running on release build
但是,當我從商店運行發布版本時,應用程序不會連接到套接字。
我正在將 LaravelEcho 與 SocketIo 客戶端一起使用。
搜索問題后,我發現了一些有關權限的結果,但我已經有了。
<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.