如何强制浏览器每次都不要打开新页面?

时间:2011-04-06 15:01:31

标签: android android-browser

我要提前感谢所有花时间阅读我的帖子的人(也许会回答:p)

我正在开发一个非常简单的Android应用程序,旨在显示一个网站。 当然,我已经阅读了文档,并且我使用以下代码来显示页面:

Uri uriUrl = Uri.parse("http://example.com");
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(launchBrowser);

网站正确显示,我在天堂:) 但.. 如果我通过按HOME按钮退出应用程序(我知道它并没有真正退出,但是nervermind)并再次启动它,Web浏览器将打开一个包含我的页面的新选项卡。我想要的是浏览器没有创建新选项卡,但保留在首次启动时创建的选项卡。

我宁愿不使用Webview,因为它意味着更多代码,我想要一个非常简单的应用程序。

我是Android开发的新手,所以请和我好心:D 我为错误道歉,我知道我的英语很糟糕。

谢谢你们!

2 个答案:

答案 0 :(得分:0)

我对Android dev也很新,但是当你按照自己的方式调用浏览器时我理解的是,你只是在默认浏览器中打开URL。使用WebView是理想的,因为它特定于您的应用程序(孤立的,或者至少这是我的印象)。使用webview并不是非常困难。这里有一些代码应该让你顺利完成:

    public void initWebView() {         

        WebView wview;  

        wview = new WebView(getApplicationContext());

        //Add the WebView to the current window
        ((WindowManager)getApplicationContext().getSystemService("window")).addView(wview, new WindowManager.LayoutParams(300, 300));

        wview.clearHistory();
        wview.clearCache(true);

        wview.getSettings().setJavaScriptEnabled(true);
        wview.getSettings().setPluginsEnabled(true);
        wview.getSettings().setPluginState(WebSettings.PluginState.ON);

        wview.getSettings().setRenderPriority(RenderPriority.HIGH);


        wview.setWebViewClient(new WebViewClient()
        {
            public void onPageFinished(WebView view, String url)
            {                               
                //Callback for when pages are finished loading
                wview.layout(0, 0, (int)DESIRED_WIDTH, (int)DESIRED_HEIGHT);
            }

            public void onPageStarted(WebView view, String url, Bitmap favicon)
            {
                //Callback for when pages are being loaded

            }
         });

        wview.loadUrl("http://blog.ascensionsystems.ca/");
    } 

答案 1 :(得分:0)

我一直在处理WebViews,他们做的工作:)在Android开发新手时设置它们有点棘手,但是它们非常易于配置,因此可以适应所有情况。

所以我的问题的答案可能是:使用WEBVIEW

你的代码对Ascension来说是一个很大的帮助,它允许我不要从头开始,看看有一些“核心”方法需要一个功能WebView。

小小的提示:你在这里使用的一些方法在文档中被注释为“已弃用”(例如我正在考虑setPluginsEnabled())。

最后但并非最不重要的是,对于那些想知道:如果您使用Ascension示例代码,您会注意到您的页面在每次屏幕旋转时都会重新加载。这对我来说有点痛苦,弄清楚为什么会发生这种情况,但这很正常,请参阅http://www.devdiv.com/android/docs/guide/topics/resources/runtime-changes.html