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



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

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

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

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

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

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

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

您可以使用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"));

这是官方文档的链接,以供进一步参考。

相关内容

  • 没有找到相关文章

最新更新