Android 在后台打开WebView

Android 在后台打开WebView,android,android-webview,Android,Android Webview,这是我第一次问问题,所以如果有什么问题就告诉我,我会尽快解决 我们有一位客户希望我们使用本机Android应用程序登录他们的服务器,但没有给我们一种定制的方式。他们希望我们使用他们必须登录的当前网站,在进行身份验证后,在浏览器中检索包含我们所需数据的XML。之后,使用本机应用程序中的数据。所有这些都是因为用户不知道/看不到正在使用浏览器。一团乱麻 当然,我过去从未尝试过这种方法,我的第一次测试让我觉得这是不可能(或极难)实现的。每当我尝试在隐藏的WebView中加载URL时,默认浏览器就会弹出,

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

我们有一位客户希望我们使用本机Android应用程序登录他们的服务器,但没有给我们一种定制的方式。他们希望我们使用他们必须登录的当前网站,在进行身份验证后,在浏览器中检索包含我们所需数据的XML。之后,使用本机应用程序中的数据。所有这些都是因为用户不知道/看不到正在使用浏览器。一团乱麻

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

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


谢谢。

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


希望这有帮助

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(){},如我所给出的示例。 第二,使用处理程序将消息从线程发送到主活动,其中包含要绘制的信息


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

哇,我没有意识到可视性可以用于网络视图…这是有意义的,因为事实是在查看课堂上。谢谢!没问题,很高兴它有帮助:)AyncTask在Backgroundow中加载可能很有用-这比我想到的所有黑客方法都要干净得多!谢谢你。在活动中执行
新WebView(this)
时(而不是执行其他按id加载的方法)对于加载隐藏的
WebView
对象,这是使加载正常工作的唯一方法。谢谢!