React Native 发布的 apk 无法从本地网络获取数据

问题描述 投票:0回答:3

我创建了一个反应本机应用程序,它运行良好。

如果我生成调试 APK 并将其安装在设备上,它可以正常工作并从本地数据库中获取数据。

但是,如果生成

gradlew assembleRelease
,APK 已成功生成,但是当我将其安装在设备上时,它不会从同一网络获取数据,而如果生成调试 APK,则会从同一网络获取数据。

这里是存储库的URL https://github.com/sh4rif/react-native-restaurant-app

android reactjs react-native apk mobile-development
3个回答
2
投票

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

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

请参阅文档


2
投票

@Anurag 的回答详细解释了这些问题,因为我在开发应用程序时也有类似的经历,我从这篇文章 @article 和 StackOverflow @post 获得了帮助。

简单的解决方案是将以下行添加到

AndroidManifest.xml
标签下的
<application

<application
      android:usesCleartextTraffic="true"

问候。


0
投票

出现此错误是因为在 Android 中,当我们尝试不调用

SSL
证书 API 调用时,Android 会阻止它,这就是它发生的原因。

<application
      android:usesCleartextTraffic="true" 

这会很完美。

© www.soinside.com 2019 - 2024. All rights reserved.