我在项目中使用 Laravel Echo Ionic。 在移动设备上运行时出现 ERR_CLEARTEXT_NOT_PERMITTED 错误,但它在 Webview 和模拟器上运行良好。
我已尝试添加
<uses-permission android:name=“android.permission.INTERNET” />
<uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE” />
<uses-permission android:name=“android.permission.ACCESS_WIFI_STATE” />
on
AndroidManifest.xml
但是,它不起作用。
我尝试添加
<access origin=“*”/>
<allow-intent href=“*” />
<allow-navigation href=“*” />
在 config.xml 上。
最后我尝试用
修改config.xml<edit-config file=“app/src/main/AndroidManifest.xml” mode=“merge” target=“/manifest/application”>
<application android:usesCleartextTraffic=“true” />
</edit-config>
但一切都不适合我。
知道如何解决这个问题吗?
最近发生在我身上,如果你尝试从你的设备连接到任何外部服务器(既然你提到了 laravel echo,那么我假设你正在尝试连接到 IP),那么也许你可以尝试这个。
如果您注意到,位于“resources”文件夹中的network_security_config.xml将被复制到您的android“app”文件夹中
...
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<application android:networkSecurityConfig="@xml/network_security_config" />
</edit-config>
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
<allow-intent href="market:*" />
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
...
</platform>
...
也许尝试将 resources/android/xml/network_security_config.xml 中的 network_security_config.xml 文件修改为:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain>localhost</domain>
<domain>your_external_ip_here</domain>
</domain-config>
</network-security-config>
希望这有帮助。
network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
<domain includeSubdomains="true">173.249.51.122</domain>
</domain-config>
</network-security-config>
仅输入 IP 地址(无 http:// 或 https://)。这对我来说是工作
要在移动设备上运行它,您需要在项目中进行一些配置,按照下面的文件路径,您将得到三种可能的解决方案
资源/android/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
<domain-config cleartextTrafficPermitted="true">
<domain>localhost</domain>
<domain includeSubdomains="true">YOUR DOMAIN/IP</domain>
</domain-config>
</network-security-config>
配置.xml
<access origin="*" />
<platform name="android">
<preference name="Scheme" value="http" />
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<application android:networkSecurityConfig="@xml/network_security_config" />
<application android:usesCleartextTraffic="true" />
</edit-config>
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
</platform>
platforms/android/app/src/main/AndroidManifest.xml
<application android:usesCleartextTraffic="true">
我的network_security_config.xml 文件中有一些更改,您可以尝试。这对我有用。添加您的 IP 地址
<?xml version="1.0" encoding="utf-8"?><network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain>localhost</domain>
<domain>http://192.168.0.51:8082/hbpms"</domain>
</domain-config>