如何将用户从移动应用重定向到移动Web浏览器?

时间:2019-07-16 21:21:07

标签: android ios mobile

我们的应用程序使用户可以登录其他服务。用户单击网站(在某些移动浏览器中)或另一个应用程序上的“登录”按钮,这将通过深层链接将其带到我们的应用程序。用户完成了我们应用程序中的登录流程。然后,我们希望将用户自动重定向到他们从哪里开始,无论是在移动浏览器还是其他应用程序上。在一般情况下,我不知道该怎么做。

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

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

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

有人建议我可以使用com.appName之类的方法将用户重定向到应用程序,但我无法在线找到任何东西来支持此操作。

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

示例 1.用户正在使用Brave移动浏览器,这不是手机的默认浏览器。 2.在某些网站上,他们单击“登录”按钮,将他们带到我们的应用程序,并在此完成登录流程。 3.我们的应用程序将他们带回到Brave,在他们的网站上该按钮处于更新状态,以反映他们已完成登录过程。

1 个答案:

答案 0 :(得分:0)

您可以使用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的链接,以供进一步参考。