使用URL模式对本机重定向做出反应

时间:2017-10-07 16:46:58

标签: javascript express react-native passport.js expo

我正在尝试在 react native app 中添加 facebook google 身份验证。所有这些操作都是使用passport在服务器( ExpressJS )上完成的。成功后我想用url模式重定向,如下所示

AppName://login?data=somejson

我已经在此链接中提到的expo的app.json中注册了一个方案 https://docs.expo.io/versions/latest/guides/linking.html和我的json如下所示

{
  "expo": {
    "name": "My App",
    "slug": "my-app",
    "sdkVersion": "21.0.0",
    "privacy": "public",
    "scheme": "AppName"
  }
}

在同一个链接中,它表示如果你想在开发模式下在expo中打开app,那么链接应该是以下内容

exp://wg-qka.community.app.exp.direct:80/+

我已将服务器代码更改为使用上述模式重定向但它仍然无法正常工作。我能够打开浏览器和登录,但这几乎是。在那之后没有任何事情发生,即使我为这个案例添加了事件监听器

exp://wg-qka.community.app.exp.direct:80/login?data=somejson

我的App.js反应原生代码。我期待事件监听器被触发但没有任何反应

Linking.addEventListener('url', this.someFunction);
Linking.getInitialURL().then((url) => {
  // some operation
});

2 个答案:

答案 0 :(得分:1)

Expo Desktop example

您的Expo桌面会生成正确的链接。一切正常。 您可以在某处(例如,您正在启动应用的位置)执行console.log(`${Expo.Constants.linkingUri}`),并查看当前正在使用的哪个linkedUri。在文档中,它并不是很清楚。我花了一段时间才发现我正在使用终端来运行我的应用程序。

编辑:对于身份验证,还有可用的AuthSession组件:https://docs.expo.io/versions/latest/sdk/auth-session.html

答案 1 :(得分:0)

我认为是这样的          EXP://wg-qka.@ {您-用户名} {您的方案} .exp.direct:80 / +