2013-02-22 159 views
1

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

+1

當然!進入你的設置,管理應用程序。單擊全部選項卡,然後選擇瀏覽器。您必須點擊Clear Defaults按鈕。 現在下一次應用程序需要瀏覽器(比如說,點擊Twitter應用程序中的鏈接),會彈出完整操作使用對話框,您可以選擇Opera或Chrome或任何你想要的,並勾選默認使用此行動框。 – Shiv 2013-02-22 04:55:29

回答

0

但問題是,當我點擊它 在默認瀏覽器中打開的網頁流量加載網頁上的鏈接

如果選擇

默認情況下使用該應用程序複選框

然後android停止向用戶顯示選項列表並繼續在選定的de中打開鏈接故障瀏覽器。

您可以擁有的唯一解決方案是通過進入設置清除首選項。然後android會向您顯示使用列表完成操作。

enter image description here

如果你想通過複雜的路要走,那麼你可以使用JavaScript注入和鏈接被點擊,這將編程顯示瀏覽器列表用戶,當調用Android的代碼。

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

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

0

@Neha它取決於有多少瀏覽器在您的手機使用。例如,如果你只有默認瀏覽器,它只會重定向到該瀏覽器。如果你在下次運行你的應用時安裝了Chrome瀏覽器,它會詢問選擇瀏覽器選項。

1

改變默認的點擊行爲

當用戶點擊的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

handling links in a webview

下面的鏈接瞭解更多信息