0

我已经有这个问题一个多月了,每当我尝试使用移动设备登录我的 react-native 应用程序时就会出现这个错误。

这是错误 在此处输入图像描述

这是登录我的反应本机应用程序的代码 在此处输入图像描述

4

2 回答 2

0

如果您正在使用一些托管在某个服务器上的 api。它必须有 https,因为在最新的设备中,http 请求是被禁止的。

于 2022-02-21T18:09:54.557 回答
0

您需要注意这部分文档。您缺少的是添加App Transport Security exception,因为您没有localhost用作服务器,并且需要 https。

默认情况下,iOS 将阻止任何未使用 SSL 加密的请求。如果您需要从明文 URL(以 http 开头的 URL)获取,您首先需要添加App Transport Security exception。如果您提前知道需要访问哪些域,则只为这些域添加例外会更安全;如果域直到运行时才知道,您可以完全禁用 ATS。但请注意,从 2017 年 1 月起,Apple 的 App Store 审核将需要合理的理由来禁用 ATS。有关详细信息,请参阅 Apple 的文档。

ATS 的一个例子如下,在 info.plist

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <false/>
  <key>NSExceptionDomains</key>
  <dict>
    <key>example.com</key>
    <dict>
      <key>NSIncludesSubdomains</key>
      <true/>
      <key>NSExceptionAllowsInsecureHTTPLoads</key>
      <true/>
    </dict>
  </dict>
</dict>

对于 android,同样来自 docs

在 Android 上,从 API 级别 28 开始,默认情况下也会阻止明文流量。可以通过在应用清单文件中设置 android:usesCleartextTraffic 来覆盖此行为。

你可以参考https://developer.android.com/guide/topics/manifest/application-element#usesCleartextTraffic

于 2022-02-24T09:00:12.143 回答