我正在对一个应用程序,这是用来获得全国各地的招标数据。我正在使用axio来发布和获取数据,一切工作正常。我已经生成了Apk,并在模拟器和Bluestak上进行了测试,但当我昨天发布应用程序时,应用程序开始在登录页面上抛出网络错误。这是我第一次收到这个错误,我现在卡住了。
请谁来帮帮我
我的package.json文件依赖于
"dependencies": {
"axios": "^0.19.0",
"firebase": "^5.11.1",
"native-base": "^2.12.1",
"react": "16.8.6",
"react-native": "0.60.3",
"react-native-elements": "^0.19.1",
"react-native-image-picker": "^1.0.1",
"react-native-router-flux": "^4.0.6",
"react-native-vector-icons": "^6.6.0",
"react-redux": "^5.1.0",
"redux": "^4.0.1"},
节点版本为10.16.0 react-native-cli: 2.0.1
我的登录页面代码在这里
sendApicall(username,me)
{
debugger;
const { REST_API } = config;
var me = this;
//const {username,password} = this.state;// {username:"arsalankhan@gmail.com",password:"0346asdff"};
me.setState({isLoading:true});
let apiconfig = {
headers: {
'Content-Type': 'application/json; charset=UTF-8'
}};
axios.post(REST_API.Tenders.Login,
{
"PhoneNumber":username,
"Email":username,
"Password": "xxxxxxxx"
},apiconfig).then(response => {
if(response.data.success)
{
me.setState({isLoading:false});
const baseModel = response.data;
var orgid = baseModel.orgid;
var userData = baseModel.userData;
Actions.newSplash({UserCompany:baseModel.data,orgid,UserData:userData});
}else
{
me.setState({isLoading:false});
me.showAlertError("Login Falied");
}
}).catch(error => {
me.setState({isLoading:false});
me.showAlertError("Error"+ error.message);
console.log("error", error)
});
}我的AndroidManifest.xml文件是
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:allowBackup="false"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest>您的帮助我们将不胜感激
发布于 2019-07-19 21:16:58
我猜您正在尝试访问HTTP协议来访问API。从Android 9开始(同样,我假设你正在使用它),如果不配置访问“明文流量”,就不能访问HTTP。
修复/解决方法的步骤:
在你的安卓项目-> / project _root/ android /app/src/main/res/xml中添加一个xml文件(如果没有xml文件夹,只需添加一个)。
然后在其中添加一个名为network_security_config.xml的xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>然后在<application>节点的AndroidManifest.xml中添加,不要复制...只需添加android:部件:
<application
...
android:networkSecurityConfig="@xml/network_security_config"
>希望这能帮你解决这个问题。
顺便说一句,也许可以考虑迁移到HTTPS,这样你就不必这么做了!
https://stackoverflow.com/questions/57112022
复制相似问题