簡體   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