是否可以将用户从 Chrome 自定义标签页重定向回 Android 应用程序?

Is it possible to redirect the user back to an Android application from a Chrome Custom Tab?

提问人:Mark Gaucher 提问时间:11/17/2023 更新时间:11/17/2023 访问量:30

问:

我希望将现有的社交登录重定向 URL 从自定义 URL 协议 () 迁移到 https URL 方案 ()。此更改将在 React Native 项目中进行,但仅在 Android 应用程序中进行。我正在考虑使用 ,它使用 Chrome 自定义选项卡来实现 Android 功能。myscheme://https://expo-web-browser

在实践中,我遇到的是更新的重定向 URL 在 中正确打开,但承诺未正确解析(并且浏览器窗口未关闭)。如果我在默认的 Chrome 浏览器中打开社交登录链接,则相同的流程会按预期工作,但系统会提示用户选择是在应用还是浏览器中打开该链接(流程中不需要的步骤)。我很好奇这是否是自定义选项卡的限制,或者我的设置中是否缺少某些内容。https://expo-web-browseropenAuthSessionAsyncexpo-web-browser

// this is how I make the call to openAuthSessionAsync (opens a Chrome Custom Tab)
WebBrowser.openAuthSessionAsync('social-login-url', 'https://foo.bar/xxx', {
  preferEphemeralSession: true, // iOS only
});

// this is the intent-filter in the AndroidManifest.xml file
<intent-filter android:autoVerify="true">
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="https" android:host="foo.bar" android:path="/xxx" />
</intent-filter>

我已经尝试过两者,这让我认为我要么没有在文件中正确设置某些内容,要么自定义选项卡根本不支持这种行为。expo-web-browserreact-native-inappbrowser-rebornAndroidManifest

预期是,如果我提供对身份验证流的重定向,则自定义选项卡将被关闭,并且在身份验证完成后,用户将被重定向到相应的深层链接。实际结果是用户返回到“自定义”选项卡中的 URL,从而呈现 Web 应用。https://https://

Android React-Native Expo chrome-自定义标签

评论


答: 暂无答案