Android 尽管添加了 xml 权限,应用仍不允许明文流量
Android app not permitting cleartext traffic inspite of adding xml permissions
我正在尝试使用 nativescript-vue 访问开发服务器 API。我已经在 android 清单中添加了所有可能的权限,但它给出了错误:JS: 错误:java.io.IOException: Cleartext HTTP traffic to url not permitted
这是我的清单:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:usesCleartextTraffic="true"
android:name="com.tns.NativeScriptApplication"
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:cleartextTrafficPermitted="true"
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
android:theme="@style/AppTheme">
这是 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 includeSubdomains="true">192.168.xxx.xxx</domain>
</domain-config>
</network-security-config>
这里是 Nativescipt-vue 代码:
httpModule.request({
url: "http://192.168.XXX.XXX:XXXX/func",
method: "POST",
headers: { "Content-Type": "application/json" },
content: data
}).then((response) => {
const result = response.content.toJSON();
}, (e) => {
console.error(e);
});
对于遇到同样问题的人,tns platform remove android
和 tns platform add android
对我有用。此后它开始读取更新的清单。
进入App_Resources -> Android -> src\main -> AndroidManifest.xml 添加 android:usesCleartextTraffic="true" 转到应用程序 xml 部分,然后执行 tns 更新资源 cmd。
我正在尝试使用 nativescript-vue 访问开发服务器 API。我已经在 android 清单中添加了所有可能的权限,但它给出了错误:JS: 错误:java.io.IOException: Cleartext HTTP traffic to url not permitted
这是我的清单:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:usesCleartextTraffic="true"
android:name="com.tns.NativeScriptApplication"
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:cleartextTrafficPermitted="true"
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
android:theme="@style/AppTheme">
这是 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 includeSubdomains="true">192.168.xxx.xxx</domain>
</domain-config>
</network-security-config>
这里是 Nativescipt-vue 代码:
httpModule.request({
url: "http://192.168.XXX.XXX:XXXX/func",
method: "POST",
headers: { "Content-Type": "application/json" },
content: data
}).then((response) => {
const result = response.content.toJSON();
}, (e) => {
console.error(e);
});
对于遇到同样问题的人,tns platform remove android
和 tns platform add android
对我有用。此后它开始读取更新的清单。
进入App_Resources -> Android -> src\main -> AndroidManifest.xml 添加 android:usesCleartextTraffic="true" 转到应用程序 xml 部分,然后执行 tns 更新资源 cmd。