React Native获取API在Android上不起作用

时间:2018-12-03 12:42:12

标签: android react-native fetch-api

我是React Native开发的初学者。我已经开发了第一个React Native应用程序,并同时在Android和iOS版本中启动。

在应用程序中,我正在使用访存API与服务器进行通信。应用程序运行良好,并且可以从iOS版本的提取API中获得响应。如果该设备已连接以加快网络连接速度(例如WiFi,4G ..),则在Android版本中也可以正常工作。

但是,如果设备通过低网络连接进行连接,则在应用程序的Android版本中,提取API不会返回任何值(出现“网络连接失败”错误)。但是在相同连接下,安装在同一设备上的其他应用程序也可以正常工作。

我正在使用

react-native-cli: version 2.0.1
react-native: version 0.55.4
babel-preset-react-native: version 4.0.0,
Android compileSdkVersion 26
buildToolsVersion 23.0.1

这是我的提取API代码

getStudentList() {
var UrlDetails = URLDetails.getURLDetails();
return fetch(UrlDetails.SERVER_NAME + UrlDetails.GET_STUDENT_DETAILS_LIST_URL + 'student_id=1')
  .then((response) => response.json())
  .then((responseJson) => {
    let ds = new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 });
    let isAllSet = responseJson.error;
    if (!isAllSet) {
      this.setState({
        isLoading: false,
        dataSource: ds.cloneWithRows(responseJson.student),
        isAllSetToShow: isAllSet,
      }, function () {
        activity_log = "received student details";
        this.updateDeviceLog();
      });
    } else {
      this.setState({
        isLoading: false,
        isAllSetToShow: isAllSet,
      }, function () {
        activity_log = "received response no student details";
        this.updateDeviceLog();
      });
    }
  })
  .catch((error) => {
    console.error(error);
    activity_log = JSON.stringify(error);
    Alert.alert('Alert',"Please check your internet connection!");
    this.updateDeviceLog();
  });

}

任何建议都值得赞赏。

0 个答案:

没有答案