繁体   English   中英

Android网页侦听器开始加载?

[英]Android listener for webpage to start loading?

我有一个加载网站的简单Web视图。 网站加载完毕后,我可以将以下内容集中/滚动到登录框:

mWebview.setWebViewClient(new WebViewClient(){

        @Override
        public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);
            mWebview.scrollTo(681, 100);

(我听说过时onPageFinished已过时,但它在2.2> 4.4中对我有效,因此我暂时将其保留。

无论如何,我想要一种监视用户实际登录时间的方式,即当页面第二次加载完成时,我可以调用一些js并将其转发到另一个页面,但是我不知道怎么做。 :(

他们登录后,我只能执行另一个onPageFinished,但是我不知道如何开始监视...换句话说,我不能在当前事件之后立即启动另一个onPageFinished,因为它只是自动重定向。

有没有人有什么建议? 我将不胜感激! :)

编辑:

这是MainActivity.java类的整体(减去导入标头)。

public class MainActivity extends Activity {

private WebView mWebview ;

@Override
public void onBackPressed() {
    if(mWebview.canGoBack() == true){
        mWebview.goBack();
    }else{
        super.onBackPressed();
    }
}


@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    mWebview  = new WebView(this);

    mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript
    mWebview.getSettings().setBuiltInZoomControls(true);

    if(android.os.Build.VERSION.SDK_INT >= 11) {
        mWebview.getSettings().setDisplayZoomControls(false);
    }

    final Activity activity = this;

    mWebview.setWebViewClient(new WebViewClient() {
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
        }
    });

    mWebview .loadUrl("http://example.com");
    setContentView(mWebview );


    mWebview.setWebViewClient(new WebViewClient(){

        @Override
        public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);
            mWebview.scrollTo(681, 100);


        }
    }

    );



}

我想我可能缺少大括号了,但是暂时不要理会,哈哈。 因此,无论如何,在mWebview.scrollTo (最后一行)之后,该网页已完成加载,并且只是在登录页面上mWebview.scrollTo 用户登录后,页面(显然)开始加载并定向到另一个登录后URL。 我想在页面第二次加载完成后使用if语句检查URL。

这更有意义吗? 抱歉,这也让我感到困惑,试图解释一下。

通常会有两个单独的URL,一个用于登录后页面,一个用于预登录页面。 您可以使用if语句来检查URL以确保您已登录,如果已登录,则它将重定向/关闭/执行任何操作。 我在这里有一个类似的问题:

在Android中关闭Webview

因此,基本上,您只想登录后执行一些JavaScript? 我不明白为什么您没有if语句来检查您是否已登录,如果您已登录,请执行js。 像这样的东西?

wv.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        if (url.contains(getString(R.string.loginURL))){
          super.onPageFinished(view, url);
          mWebview.scrollTo(681, 100);
         }else if(url.contains(getString(R.string.loggedInURL))) {
                wv.loadUrl(js goes here);
         }
    }
}

每当您的WebView的页面加载完成时,就会执行此操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM