gpt4 book ai didi

android - 如何将用户从移动应用程序重定向到移动网络浏览器?

转载 作者:行者123 更新时间:2023-11-29 13:55:00 25 4
gpt4 key购买 nike

我们的应用程序允许用户登录其他服务。用户点击网站(在某些移动浏览器中)或其他应用程序上的登录按钮,这会通过深层链接将他们带到我们的应用程序。用户在我们的应用程序中完成登录流程。然后我们想自动将用户重定向到他们开始的地方,无论是在移动浏览器还是其他应用程序上。我不知道在一般情况下该怎么做。

我的理解是,重定向到另一个应用程序需要该应用程序启用深度链接。 (问题 #0:这是真的吗,或者即使应用程序没有深层链接也有办法做到这一点吗?)

我问过的每个人似乎都认为这只适用于应用程序而不适用于移动浏览器,即无法深入链接到移动浏览器或以其他方式将用户重定向到它们(手机的默认浏览器除外)。但这对我来说没有意义,因为移动浏览器只是一种移动应用程序。

此外,至少有一种操作系统级别的方法可以返回到另一个应用程序或浏览器:iOS 和 Android 都有这样的后退按钮,并且它适用于应用程序(即使它们没有深层链接)和移动设备浏览器。我不知道这是否可供我们开发人员访问,但它表明该功能可能是可行的。

有人向我建议,有一些方法可以使用 com.appName 之类的东西将用户重定向到应用程序,但我无法在网上找到任何支持这一点的东西。

为了更清楚地说明这一点,下面是一个捕获更微妙挑战的所需流程的示例:

例子1. 用户使用的是 Brave 手机浏览器,这不是他们手机的默认浏览器。2. 在某些网站上,他们单击登录按钮,将他们带到我们的应用程序,在那里他们完成了登录流程。3. 我们的应用程序将他们带回 Brave,他们网站上的按钮已更新,以反射(reflect)他们已完成登录过程的事实。

最佳答案

您可以在移动浏览器中使用 Intent URL。

String url = "http://www.example.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
//Or
//Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);

您还可以使用以下几行内容打开特定浏览器。

Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com"));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setPackage("com.android.chrome");
try {
startActivity(i);
} catch (ActivityNotFoundException e) {
// Chrome is probably not installed
// Try with the default browser
i.setPackage(null);
startActivity(i);
}

您还可以允许用户选择浏览器。

String url = "http://www.example.com";
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
// Note the Chooser below. If no applications match,
// Android displays a system message.So here there is no need for try-catch.
startActivity(Intent.createChooser(intent, "Browse with"));

这是 official docs 的链接以供进一步引用。

关于android - 如何将用户从移动应用程序重定向到移动网络浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57065596/

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