📅  最后修改于: 2023-12-03 15:03:09.698000             🧑  作者: Mango
该错误提示是由于应用程序尝试从一个不安全的HTTP连接升级到HTTPS连接,而操作系统不允许进行此操作,因此会触发此错误。这是为了保持应用程序的安全性。
这意味着您的应用程序需要注意以下几点:
在 AndroidManifest.xml 文件中,使用 <application>
元素指定网络安全性规则。
<application
android:usesCleartextTraffic="true">
...
</application>
如果您的应用程序使用了Android Pie或更高版本,请在AndroidManifest.xml文件中使用以下XML配置:
<application
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config">
....
</application>
network_security_config是一个XML文件,定义应用程序的网络安全设置。
<network-security-config>
<base-config cleartextTrafficPermitted="false">
<trust-anchors>
<certificates src="@raw/my_cert" />
</trust-anchors>
</base-config>
</network-security-config>
以下是配置文件的含义:
cleartextTrafficPermitted
:如果设置为 false
,则应用程序将不允许进行不安全的HTTP连接trust-anchors
: 证书绝对路径,直到raw目录如果您使用的是较早版本的Android平台,则可以使用以下XML配置:
<application
android:label="@string/app_name">
<uses-library android:name="org.apache.http.legacy" android:required="false" />
....
</application>
iOS开发者可以在应用程序的环境中配置以下内容,例如 info.plst.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
将 NSAllowsArbitraryLoads
设置为 true
允许您的应用程序从不安全的HTTP连接升级到安全的HTTPS。
如果您希望让应用程序只与特定的域进行通信,请使用以下XML配置:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourdomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
当您遇到 net::ERR_CLEARTEXT_NOT_PERMITTED (WebResourceErrorType.unknown -1)
这个问题时,请遵循以上几点进行配置,并确保您的应用程序的HTTPS证书受到信任,这样可以避免安全性问题并确保您的应用程序的稳定性。