在后台打开WebView

时间:2011-08-22 10:05:59

标签: android android-webview

这是我第一次提出问题,所以如果有什么问题请告诉我,我会尽快解决。

我们有一位客户希望我们使用原生Android应用程序登录他们的服务器,但没有为我们提供自定义方式。他们希望我们使用他们必须登录的当前网站,并在进行身份验证后,在浏览器中检索包含我们所需数据的XML。之后,使用本机应用程序中的数据。所有这一切都是因为用户不知道/看到正在使用浏览器。总是混乱恕我直言。

当然,我过去从未尝试过这种方法,而我的第一次测试让我觉得这是不可能的(或非常困难)。每当我尝试在隐藏的WebView中加载URL时,会弹出显示网站的默认浏览器。

我的主要问题是,是否可以在后台加载webview并使用它(调用javascript等...)?

谢谢。

2 个答案:

答案 0 :(得分:7)

默认情况下,您可以将WebView设置为隐藏,其属性为android:visibility =“gone”,在运行时与其进行交互,然后在您加载数据后需要向用户显示时,只需调用setVisibility(View 。可见)

希望这有帮助!

答案 1 :(得分:1)

Ofc,你必须使用一个线程:

protected void getPage(){
    Thread th = new Thread(){

        public void run(){

            //Download and make things



            mActivity.runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    //print int the activity

                }
            });
        }
    };

    th.start();

记住,那非常重要,你不能从线程到主要活动。唯一可以在屏幕上绘制的是主要活动。您可以使用两种方法绘制:

一,方法_mActivity。 runOnUiThread (new Runnable(){_就像我放的例子。 二,使用Handler将消息从线程发送到主活动,并显示您想要绘制的信息。

*主要活动是当时屏幕中的活动,而不是应用程序的第一个活动