react Native expo go 在 uvicorn https 后无法连接到本地主机

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

我正在编写一个带有 fastapi 后端的 React Native expo go 应用程序。 这是一个教育应用程序,所以它有图像、视频和 pdf 等..

React Native Image 组件未在 ios 模拟器上加载图像,我发现我需要使用 https 运行我的服务器,否则图像将无法加载,因为这是 Apple 的要求。经过一番痛苦的尝试后,我成功地在本地计算机上使用 ssl 运行 uvicorn。

经过一天的设置和配置尝试,我无法让 expo go 连接到服务器。 Expo Go 一直给出网络请求失败的错误。

我的 uvicorn -> fastapi 服务器使用 SSL 在 127.0.0.1:8432 或 localhost:8432 上运行。 我查看了 swagger 文档,它们使用 SSL 处理两个地址( localhost 和 127.0.0.1 )。

在Expo go方面,我尝试了https://127.0.0.1:8432和localhost:8432以及我的局域网ip 192.168.1.56,但它们都不适用于expo go。

无需运行 https,一切正常,但 ios 模拟器不会加载图像或视频。任何东西真的...只有文本加载成功。

那么,我的选择是什么?有吗

react-native https fastapi uvicorn expo-go
1个回答
0
投票

我需要自己回答这个问题,因为这花了我一些时间。 我认为整个不从网络加载图像是由于 ATS ( AppTransportSecurity ) 问题,因为苹果不允许从非 https 连接加载图像。事实证明,包括这里在内的许多网站的许多问题中都记录了这样的问题。 然而,这个问题不再有效,所以如果有人看到这个,他们会知道它有一个非常简单的解决方案,并且与旧问题无关。

如果您想要加载图像,您只需指定大小即可。

          <Image
            source={{
              uri: lesson.PosterUrl, // lesson.PosterUrl is string
            }}
          />

不会加载图像,下面的代码将:

          <Image
            source={{
              uri: lesson.PosterUrl,
            }}
            style={{ width: 360, height: 360 }}
          />

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