簡體   English   中英

打開對話框選擇瀏覽器

[英]Open dialog to choose browser

我有一個加載了url的webview,其中有一些URL可單擊,但是問題是當我單擊加載在webview中的頁面上的鏈接時,它在默認瀏覽器中打開,我想在單擊時打開包含所有瀏覽器的對話框在設備上的鏈接上,要求選擇瀏覽器,並且應該在選定的瀏覽器中打開它?

覆蓋默認點擊行為

當用戶單擊WebView中的鏈接時,默認行為是加載任何可以處理該鏈接的默認應用程序。 因此,如果您單擊Web URL,瀏覽器將打開進行處理。 如果您試圖在本地構建的網頁之間導航,則需要覆蓋此功能。 幸運的是,這並不難處理。 通過將WebView的WebViewClient設置為WebViewClient的新實例,您可以超級快地完成此操作,如下所示:

在OnCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WebView webView = (WebView) findViewById(R.id.webView1);

    WebViewClient viewClient = new WebViewClient(){

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url)); 
            startActivity(intent); 
            view.loadUrl(url);
            return true;

        }
    };

    webView.setWebViewClient(viewClient);
    webView.loadUrl("http://www.google.com");
}

檢查以下鏈接以獲取有關WebViewClient的更多信息

處理Web視圖中的鏈接

但是問題是當我單擊加載在Webview中的頁面上的鏈接時,它在默認瀏覽器中打開

如果您已選擇

默認情況下使用此應用程序復選框

然后,Android停止向用戶顯示選項列表,並繼續在選定的默認瀏覽器中打開鏈接。

唯一的解決方案是通過進入settings來清除該首選項。然后android會使用List向您顯示Complete action。

在此處輸入圖片說明

而且,如果您想使用復雜的方法,則可以使用Javascript注入並在單擊鏈接時調用Android代碼,從而以編程方式向用戶顯示瀏覽器列表。

您可以使用PackageManagerqueryIntentActivityOptions()過濾掉您的活動並獲取用戶可以選擇的其他活動的列表。

http://developer.android.com/guide/webapps/webview.html

@Neha,這取決於您的手機中可用的瀏覽器數量。 例如,如果您只有默認瀏覽器,它將僅重定向到該瀏覽器。 如果您下次安裝了chrome瀏覽器,則下次運行您的應用時,系統會要求選擇瀏覽器選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM