使用WebView中的javascript触发setVisibility属性;不起作用

Triggering setVisibility property with javascript from WebView doesn't work

本文关键字:属性 不起作用 setVisibility 触发 WebView 中的 javascript 使用      更新时间:2023-09-26

我在Java环境中太迟钝了,很可能我错过了一些非常重要的东西,但无论如何,这是我的代码:

以下是我在XML:中创建的对象

<ImageView
    android:id="@+id/splash_screen"
    android:src="@drawable/my_image"
    android:layout_height="match_parent"
    android:layout_width="match_parent"/>

以下是假设触发函数的javascript代码:

function hideSplash() {
    Android.hideSplash();
}
$(window).load(function(){
    hideSplash();
});

这是应该由javascript:触发的函数

public void hideSplash() {
    Toast.makeText(mContext, "Splash! Remove!!!", Toast.LENGTH_SHORT).show();
    View splash = (ImageView) findViewById(R.id.splash_screen);
    splash.setVisibility(View.GONE);            
}

正如你所看到的,我在函数的头部放置了一个Toast警报,以检查是否发生了什么事情。我得到的是jsut这个"Splash!Remove!!"消息,而"Splash"对象由于某种原因拒绝更改其可见性。有人请帮我把它做好。。。我已经试过了!

我想我的整个方法可能是错误的。我想要的是在WebView内容完全加载时隐藏启动屏幕图像:

好的,我拿到了。。。我已经在父类中描述了函数,然后从javascript类中调用了它。像这样:

public class MainActivity extends Activity {
    public class JavaScriptInterface extends Activity {
        public void hideSplash() {
            hideSplashHandler();
        }
    }
    public void onCreate(Bundle savedInstanceState) {
        /** Some onCreate stuff */
    }
    public void hideSplashHandler() {
        ImageView splash = (ImageView) findViewById(R.id.splash_screen);
        splash.setVisibility(View.GONE);  
    }
}

我不知道这是否正确,但它就像一个魅力^_^