gpt4 book ai didi

android - expo-auth-session - 返回应用程序时的两个应用程序选项

转载 作者:行者123 更新时间:2023-12-05 00:02:24 29 4
gpt4 key购买 nike

SDK 版本:43.0.0

平台(Android/iOS/web/all): Android

您好,我在托管工作流中使用 expo-auth-session 通过其官方 API 收集 Instagram 用户数据,它在开发环境中运行良好(通过“expo run:android”命令),但是一旦构建 APK 是在用户进行授权过程并且重定向开始时创建的,弹出窗口询问“打开方式”和我的应用程序的两个选项,第一个完美运行,第二个返回到应用程序但什么都不做,我没有'在 IOS 上测试。

这是代表它的图像: Click here to see

当我在开发时,我尝试执行 google 登录过程,但遇到了同样的错误,通过实现 google native 登录部分解决了。我在app.json中验证了我的方案,但没有发现错误,如下:

应用程序.json:

{
"expo": {
"name": "Secreet",
"slug": "secreet",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"scheme": "com.davidtmiranda.secreet",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": ["**/*"],
"ios": {
"supportsTablet": true,
"usesAppleSignIn": true,
"bundleIdentifier": "com.davidtmiranda.secreet",
"googleServicesFile": "./GoogleService-Info.plist",
"config": {
"googleSignIn": {
"reservedClientId": "com.googleusercontent.apps.--------------------"
}
}
},
"android": {
"versionCode": 1,
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#FFFFFF"
},
"package": "com.davidtmiranda.secreet",
"googleServicesFile": "./google-services.json"
},
"web": {
"favicon": "./assets/favicon.png"
}
}
}

此外,我的 authSession 代码如下所示:

    webBrowser.maybeCompleteAuthSession();
const useProxy = Platform.select({ web: false, default: true });

const client_id = ---;
const redirect_uri = "https://auth.expo.io/@davidtmiranda/secreet";
const scope = "user_profile";

const site =
"https://api.instagram.com/oauth/authorize?client_id=" +
client_id +
"&redirect_uri=" +
redirect_uri +
"&scope=" +
scope +
"&response_type=code&state=1";

const discovery = { authorizationEndpoint: site };

const [request, response, promptAsync] = useAuthRequest(
{
redirectUri: makeRedirectUri({
useProxy,
native: redirect_uri,
}),
scopes: [scope],
clientId: String(client_id),
},
discovery
);

useEffect(() => {
if (response?.type === "success") {
...
}
}, [response]);

function GetInstagramID() {
return promptAsync({
useProxy,
});
}

关于如何解决这个问题有什么建议吗?我认为它与架构相关,但无法确定问题所在。

最佳答案

也许你可以尝试删除 app.json 中的 scheme

"scheme": "com.davidtmiranda.secreet",

它会改变 android/app/build.gradle

中的 appAuthRedirectScheme
manifestPlaceholders = [appAuthRedirectScheme: 'com.davidtmiranda.secreet']

它解决了我的问题。

关于android - expo-auth-session - 返回应用程序时的两个应用程序选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70019284/

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