检测PhoneGap WebView在Android上加载完成的时机

3

PhoneGap(特别是Android的DroidGap)有没有告诉其webview已加载的方法。 我想找到类似于以下内容的PhoneGap文档:

正常的WebView客户端创建:

mWebView.setWebViewClient(new WebViewClient() {

   public void onPageFinished(WebView view, String url) {
        // do your stuff here
    }
});

创建我的PhoneGap Webview如下所示:
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_activity);

    if (isOnline() == true) {

         WebSettings settings = mWebView.getSettings(); 
        settings.setAllowFileAccess(true);
        settings.setAppCacheEnabled(true);
        settings.setJavaScriptEnabled(true); 

        mWebView.loadUrl("http://myurl.com");


        mWebView.setWebViewClient(new WebViewClient() {

           public void onPageFinished(WebView view, String url) {
               //hide loading image
               findViewById(R.id.imageLoading1).setVisibility(View.GONE);
               //show webview
               findViewById(R.id.mWebView).setVisibility(View.VISIBLE);
            }
        });
    }
    else {
       //hide loading image
        findViewById(R.id.imageLoading1).setVisibility(View.GONE);
        //show webview
        findViewById(R.id.mWebView).setVisibility(View.VISIBLE);

        Intent myIntent = new Intent(getContext(), LoadScreen.class);

        startActivity(myIntent);
        finish();
    }

我的Main_Activity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


     <ImageView android:id="@+id/imageLoading1"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:visibility="visible"
        android:src="@drawable/splash"
        />

      <WebView android:id="@+id/mWebView"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:visibility="gone"
        />



</RelativeLayout>
1个回答

3

DroidGap没有一个方法,因为它是一个活动(activity),而不是一个视图(view)。相反,CordovaWebViewClient使用其onPageFinished方法在页面加载完成时向所有插件发送消息。这就是插件可以用来确定页面是否已经加载完成的方法。反过来,您可以在JavaScript中检查deviceready事件,该事件应在页面加载完成后触发。

如果您需要在Java中了解WebView何时加载完成,而不是用于插件的其他内容,我强烈建议切换到使用CordovaWebView并自己实现生命周期事件,因为这将使您对增强视图拥有更多控制权。这也意味着您必须确保正确处理使用活动的插件,否则它们将会出错。


我已经编辑了我的代码。你能再次参考我的问题吗?谢谢。 - Mobie
我现在已经实现了一个基本的Android WebView。你能解释一下我在这里做错了什么吗?我试图显示一个启动画面。 - Mobie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接