gpt4 book ai didi

react-native - 如何获取 Expo 静态深层链接进行开发?

转载 作者:行者123 更新时间:2023-12-02 16:51:41 33 4
gpt4 key购买 nike

我需要一个用于开发的 Expo 静态深层链接,以便与第 3 方 (Cognito) 进行 Oauth 重定向

我使用了 Linking.makeUrl() 但这会返回一个带有动态本地 ipaddress 的深层链接exp://10.0.0.107:19000 对于团队中的其他开发人员来说将不一致。

文档位于: https://docs.expo.io/versions/latest/workflow/linking/#linking-module

说各种环境链接看起来像

  • 在 Expo 客户端中发布应用:exp://exp.host/@community/with-webbrowser-redirect

  • 独立发布的应用程序:myapp://

  • 开发:exp://wg-qka.community.app.exp.direct:80

我试过那个开发链接但是打不开。

最佳答案

我也遇到了类似的问题,这是我的解决方法也张贴在 https://github.com/aws-amplify/amplify-js/issues/4244#issuecomment-586845322

如果有人仍然需要 expo+amplify+social 登录方面的帮助

应用程序.json
{
"expo": {
"scheme": "exposchemeappname://" // use any name you like, just make it unique
}
}
应用程序.js
import { Linking } from 'expo';
import * as WebBrowser from 'expo-web-browser';

import awsconfig from './aws-exports';

const amplifyConfig = {
...awsconfig,
oauth: {
...awsconfig.oauth,
urlOpener: async (url, redirectUrl) => {
// On Expo, use WebBrowser.openAuthSessionAsync to open the Hosted UI pages.
const { type, url: newUrl } = await WebBrowser.openAuthSessionAsync(url, redirectUrl);

if (type === 'success') {
await WebBrowser.dismissBrowser();

if (Platform.OS === 'ios') {
return Linking.openURL(newUrl);
}
}
},
options: {
// Indicates if the data collection is enabled to support Cognito advanced security features. By default, this flag is set to true.
AdvancedSecurityDataCollectionFlag: true
},
}
};

const expoScheme = "exposchemeappname://"
// Technically you need to pass the correct redirectUrl to the web browser.
let redirectUrl = Linking.makeUrl();
if (redirectUrl.startsWith('exp://1')) {
// handle simulator(localhost) and device(Lan)
redirectUrl = redirectUrl + '/--/';
} else
if (redirectUrl === expoScheme) {
// dont do anything
} else {
// handle the expo client
redirectUrl = redirectUrl + '/'
}
amplifyConfig.oauth.redirectSignIn = redirectUrl;
amplifyConfig.oauth.redirectSignOut = redirectUrl;

Amplify.configure(amplifyConfig);

确保添加以下重定向 URL 以放大 amplify auth update

# development
exp://127.0.0.1:19000/--/
exp://192.168.1.101:19000/ # depends on your lan ip

# expo client
exp://exp.host/@[EXPO_ACCOUNT]/[EXPO_APPNAME]/

# expo scheme for standalone
exposchemeappname://

关于react-native - 如何获取 Expo 静态深层链接进行开发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58420797/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com