我正在iOS React本机应用程序中处理OAuth请求.此应用程序包含并通过Expo启动.我想添加一个custom callback url,这样我可以在跳入浏览器后返回应用程序.据推测,我是通过修改info.plist文件来实现这一点的,只是找不到它.我的项目文件夹在任何地方都不包含此文件,我也不完全确定命令行工具npm是否在运行时生成它.

这个文件到底在哪里?

在上下文中,我使用的是Xcode.我只是用升华编辑我的项目文件,终端运行npm start.

编辑-找到解决方案后:

还有一个关于StackOverflow的问题,旨在回答同一个问题,但原因不同:"Info.plist file for react native ios app using expo SDK."然而,我的问题具体到callback urls.正如我在my answer below中所描述的,Expo为你的应用程序提供了自己的回调URL(即无需编辑info.plist文件).如果你需要info.plist,请看上面链接的问题.在使用Expo时,info.plist文件是隐藏的,但是访问它的一些字段需要解决一些问题.

推荐答案

Shubhnik Singh真的帮了我大忙.如果有人想知道,请点击这里:https://docs.expo.io/versions/latest/workflow/linking/

更具体地说,看看Expo.Linking module section.你不是在创建自己的回调url链接,而是在borrow Expo的.毕竟,你是在用另一个应用程序运行所有东西,所以拥有自己真正的回调链接是没有意义的.

总之,Expo会给你一个回调链接.

编辑:2019年3月30日,星期六

正如 comments 中所报道的,Linking指南的原始链接已经失效.但是,expo 似乎只是在他们的领域里转移了一些东西.很明显,一些实际细节已经略有改变(见WayBackMachine的original page的快照).特别是关于这个问题,回调URL的细节和实际指南上的名称略有变化.为了反映这一点,我更新了上面的原始答案.

React-native相关问答推荐

PubNubReact无法工作,因为它已被废弃

'无法解析模块.安装react-native-pager-view后的实用程序/平台

将值从一个 js 文件传递​​到 react native 中的另一个 js 文件:react native

新的 react-native ios 应用程序没有构建?

在react-native 应用程序中使用中继

如何为我的 React Native Android 应用程序使用 Crashlytics?

警告:API 'variant.getMergeAssets()' 已过时 / Android Studio 3.3

我如何知道我的代码是否作为 React Native 运行

React Native 获取视图相对于屏幕的绝对位置

React - 类内的useContext

自从升级到 Xcode 10.2 我不能再通过 cli 运行 react-native run-ios

React Native - NSNumber 无法转换为 NSString

由于端口 8081 sunproxyadmin,无法打包 react native

通过 ToolbarAndroid => onIconClicked 显示 DrawerLayoutAndroid

在 React Native 视图上强制 onLayout

是否需要使用 StyleSheet.create?

React.createClass vs. ES6 箭头函数

React-Native 元素卡在 :app:installDebug

单击平面列表中的侦听器

在 React Native 中,两个等宽的按钮水平填充屏幕