如何阻止默认浏览器在android中打开两次url

时间:2015-05-04 09:44:38

标签: android

我有一个简单的应用程序来从浏览器打开一个URL。它会从browse中打开url。但是当应用程序再次打开时,后台浏览器不会弹出,而是再次打开浏览器。这样在后台会有多个实例.. 如果它在重新发送的应用程序部分中运行,请帮助我如何停止从浏览器打开URL。

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.webkit.WebView;

    public class MainActivity extends Activity {

        WebView m_cWebView;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    //      m_cWebView = (WebView) findViewById(R.id.WEB_VIEW);
    //      m_cWebView.loadUrl("http://209.198.193.73:9002/");
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.setData(android.net.Uri.parse("http://209.198.193.73:9002/"));
            this.startActivity(intent);
            finish();
        }
    }

2 个答案:

答案 0 :(得分:0)

您可能可以通过在您的应用中添加webview并在那里显示您的网址来提供更好的体验。这将允许您更多控制,让您打开浏览器的外部链接,e.t.c。

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

答案 1 :(得分:0)

我想回答,因为我终于找到了上述问题的解决方案。由于我在该活动中使用webview并添加以下编写的代码以重新打开webview中的下一个浏览URL,因此评论的webview行不会被注释掉。

                    m_cWebView.getSettings().setBuiltInZoomControls(true);
                    m_cWebView.setWebViewClient(new WebViewClient() {
                        @Override
                        public boolean shouldOverrideUrlLoading(WebView pObjView, String pUrl) {
                            pObjView.loadUrl(pUrl);
                          return true;
                        }

                        @Override
                        public void onPageStarted(WebView view, String pUrl, Bitmap favicon) {
                            super.onPageStarted(view, pUrl, favicon);
                            }
                    });

                    m_cWebView.getSettings().setJavaScriptEnabled(true);
                    m_cWebView.loadUrl(m_cLink); 

这将解决以下问题,即下一个网址无法打开默认浏览器,而是在网页视图中打开。