我创建了一个反应本机应用程序,它运行良好。
如果我生成调试 APK 并将其安装在设备上,它可以正常工作并从本地数据库中获取数据。
但是,如果生成
gradlew assembleRelease
,APK 已成功生成,但是当我将其安装在设备上时,它不会从同一网络获取数据,而如果生成调试 APK,则会从同一网络获取数据。
这里是存储库的URL https://github.com/sh4rif/react-native-restaurant-app。
默认情况下,iOS 将阻止任何未使用 SSL 加密的请求。如果您需要从明文 URL(以 http 开头的 URL)获取,您首先需要添加应用程序传输安全例外。如果您提前知道需要访问哪些域,则仅为这些域添加例外会更安全;如果域直到运行时才知道,您可以完全禁用 ATS。但请注意,从 2017 年 1 月起,Apple 的 App Store 审核将需要提供合理的理由才能禁用 ATS。请参阅 Apple 文档以获取更多信息。
在 Android 上,从 API 级别 28 开始,默认情况下也会阻止明文流量。可以通过在应用清单文件中设置 android:usesCleartextTraffic 来覆盖此行为。
出现此错误是因为在 Android 中,当我们尝试不调用
SSL
证书 API 调用时,Android 会阻止它,这就是它发生的原因。
<application
android:usesCleartextTraffic="true"
这会很完美。