2

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

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

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

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

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

我是 Android 开发新手,所以请善待我 :D 我为错误道歉,我知道我的英语不好。

谢谢你们 !

4

2 回答 2

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/");
    } 
于 2011-04-06T15:21:15.570 回答
0

我一直在处理 WebViews,他们完成了这项工作 :) 当刚接触 Android 开发时,设置它们有点棘手,但它们是非常可配置的,因此可以适应所有情况。

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

你的代码对 Ascension 有很大帮助,它让我不必从头开始,并看到一些“核心”方法需要有一个功能性的 WebView。

给您的小提示:您在此处使用的某些方法在文档中被标记为“已弃用”(例如,我正在考虑 setPluginsEnabled())。

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

于 2011-04-08T07:36:05.700 回答