打开对话框选择浏览器

打开对话框选择浏览器

问题描述:

我有一个网址加载的网址,其中有一些网址可点击,但问题是当我点击网页加载的网页上的链接它打开默认浏览器,我想打开包含所有浏览器的对话框,当我点击设备中的链接时,要求选择浏览器,它应该在选定的浏览器中打开?打开对话框选择浏览器

+1

当然!进入你的设置,管理应用程序。单击全部选项卡,然后选择浏览器。您必须点击Clear Defaults按钮。 现在下一次应用程序需要浏览器(比如说,点击Twitter应用程序中的链接),会弹出完整操作使用对话框,您可以选择Opera或Chrome或任何你想要的,并勾选默认使用此行动框。 – Shiv 2013-02-22 04:55:29

但问题是,当我点击它 在默认浏览器中打开的网页流量加载网页上的链接

如果选择

默认情况下使用该应用程序复选框

然后android停止向用户显示选项列表并继续在选定的de中打开链接故障浏览器。

您可以拥有的唯一解决方案是通过进入设置清除首选项。然后android会向您显示使用列表完成操作。

enter image description here

如果你想通过复杂的路要走,那么你可以使用JavaScript注入和链接被点击,这将编程显示浏览器列表用户,当调用Android的代码。

您可以使用PackageManagerqueryIntentActivityOptions()过滤您的活动并获取用户可以从中进行选择的其他活动的列表。

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

@Neha它取决于有多少浏览器在您的手机使用。例如,如果你只有默认浏览器,它只会重定向到该浏览器。如果你在下次运行你的应用时安装了Chrome浏览器,它会询问选择浏览器选项。

改变默认的点击行为

当用户点击的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

下面的链接了解更多信息