繁体   English   中英

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

[英]How to redirect user to mobile web browser from mobile app?

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

我的理解是,重定向到另一个应用程序需要该应用程序启用深度链接。 (问题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"));

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM