Приложение выдает ошибку сети после смахивания - PullRequest
0 голосов
/ 18 июня 2020

Сценарий приложения

Я разрабатываю мобильное приложение с нативной реакцией. Он подключен к API и имеет вход для аутентификации и так далее. Все конечные точки работают нормально и дают правильный ответ. После входа пользователя в систему, если пользователь не вышел из системы и выйдет из приложения, ему не придется снова входить в систему. В начале есть экран spla sh, который проверяет, установлен ли код доступа, и позволяет пользователю перейти на панель управления. Если пользователь нажимает кнопку «Назад» на панели инструментов, приложение закрывается. Затем пользователь может открыть его снова и перейти на панель управления.

Проблема

Если пользователь, смахните приложение, чтобы выйти из приложения, а затем снова откройте его , Запрос API поврежден. Запрос API, который находится на экране spla sh, является конечной точкой аутентификации. На этот раз запрос получает ответ: «Ошибка сети». Просто ошибка сети и код состояния отсутствует. Я тоже проверил бэкэнд, но никаких запросов на бэкэнд не поступало. Я не могу понять, почему произошла сетевая ошибка, только после того, как приложение было удалено. Этого не произошло при правильном выходе из приложения.

Это мой топор ios запрос в экране spla sh. Этот же запрос происходит и на экране входа в систему. Нет проблем с конечной точкой.

const getLogin = (mobile, passcode) => {
  var bodyFormData = new FormData();
  bodyFormData.append('username', mobile);
  bodyFormData.append('password', passcode);
  bodyFormData.append('grant_type', 'password');

  return axios({
    method: 'POST',
    url: `${URL.URL_VAR}/api/oauth/oauth/token`,
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    data: bodyFormData
  }).then(function (response) {
    return response;
  }).catch(function (response) {
    console.log("Get login error: " + JSON.stringify(response));
    return response;
  });
}

Манифест xml файл

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  package="com.campaign">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <application
      android:networkSecurityConfig="@xml/network_security_config"
      android:usesCleartextTraffic="true" tools:targetApi="28"
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme">
        <uses-library android:name="org.apache.http.legacy" android:required="false"/>
      <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>

файл network_security_config

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">localhost</domain>
        <domain includeSubdomains="true">Domain 1</domain>
        <domain includeSubdomains="true">Domain 2</domain>

        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </domain-config>

    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>

Это моя конфигурация файлы и перепробовали множество решений. Но ничего не помогло.

Помогите пожалуйста найти и исправить.

...