mobile - 将 Nativescript 移动应用程序与本地 api 服务器连接
问题描述
所以我遇到了可能是一个典型的问题,虽然这里和这里似乎有几个相关的问题和答案,但它们并不完全适用于我的问题。
我有一个在开发中运行的本地 django 服务器(localhost:8000)。我想通过使用 Nativescript/Vue 和 Axios 来轻松开发一个连接到我的 django 服务器的 Nativescript 移动应用程序来进行 http 调用。我更喜欢在 ios 中开始开发/测试。我有两种使用 Nativescript 进行开发的选择——使用“tns run ios”在我的 mac 上调出 ios 模拟器,或者使用“tns preview”让我可以通过我的实际 iPhone 进行测试。
当我通过 axios 对http://localhost:8000/myapi进行基本调用时,该调用会产生一个空的 http 状态结果。
- 我尝试使用环回地址(例如,10.0.2.2 - 我相信它可能适用于 Android 模拟器)但产生了相同的结果。
我尝试使用我的 Mac 的本地 IP 地址 - 即,使用我的本地 192.168.xx.xx 地址进行呼叫,而不是本地主机,但这不起作用
我终于能够使用 ./ngrok 将我的本地服务器隧道连接到外部 IP 地址。现在可以了,但它并不理想,因为该 IP 地址可能会不时更改。
使用 Nativescript 预览或运行 ios 模拟器轻松连接到我的本地 api 服务器的建议解决方案是什么?
解决方案
模拟器 API 路径:- http://10.0.2.2:5000。就像您的 API 本地路径是http://198.168.1:5000/api或http://localhost:5000/api然后替换为http://10.0.2.2:5000/api并且端口地址与您的本地相同API 端口。
路径- App_resources /Android/src/main/AndroidManifest.xml :-
android:usesCleartextTraffic="true"添加应用标签
iOS 文件路径 - App_Resources/iOS/Info.plist
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>10.0.2.2:5000</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
推荐阅读
- python - __init__ 使用方法 v lambda
- d3.js - Cross Hairs 组件抛出错误,特定于数据集?
- c# - C#无法加入主线程
- android - 如何更改 ListPreference 弹出对话框的样式?
- symfony - 如何将swagger的安全注释添加到fos rest控制器?
- java - 使用 JMX 和 VisualVM 监控应用程序指标
- nginx - 来自 PNG 上传的 nginx ISE 因为权限
- javascript - Javascript无后端上传图片预览
- excel - 在两列中搜索单词并复制到另一个工作表
- c# - 删除 StackExchange.Redis 中 Set 的所有键