Is there a XWalkView webviewclient?

穿精又带淫゛_ 提交于 2019-12-08 19:36:37

问题


I'm trying to use XWalkView as webview replacement in my android app. I noticed that there's no setWebViewClient method on XWalkView object. The thing is that I want to check when the page is finished (onPageFinished) and when the resource is loaded (onLoadResource). How can I do this with XWalkView?

I embed the XWalkView using this tutorial

embed crosswalk in android studio


回答1:


Cross Walk API introduces its own names for every component. Not only the WebView is renamed to XWalkView, but also WebViewClient has its counterpart named XWalkResourceClient and WebChromeClient - XWalkUIClient. So, instead of setWebViewClient you should use setResourceClient method and pass XWalkResourceClient instance to it. In this object you can implement some required methods, for example onLoadFinished. Please, consult with Cross Walk API documentation for further details.




回答2:


WebViewClient example:

    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            //Do stuff
        }
    });

Same thing but using XWalkView version:

xWalkView.setResourceClient(new XWalkResourceClient(xWalkView){
        @Override
        public void onLoadFinished(XWalkView view, String url) {
            super.onLoadFinished(view, url);
            //Do Stuff
        }
    });



回答3:


you can use ResourceClient.

class ResourceClient extends XWalkResourceClient {
    public ResourceClient(XWalkView xwalkView) {
        super(xwalkView);
    }

    public void onLoadStarted(XWalkView view, String url) {
        mProgress = (ProgressBar) findViewById(R.id.progressBar);
        mProgress.setVisibility(View.VISIBLE);
        super.onLoadStarted(view, url);
        Log.d("INFO", "Load Started:" + url);
    }

    public void onLoadFinished(XWalkView view, String url) {
        super.onLoadFinished(view, url);
        Log.d("INFO", "Load Finished:" + url);
        bottomBar = (BottomBar) findViewById(R.id.bottomBar);
        mProgress = (ProgressBar) findViewById(R.id.progressBar);
        mProgress.setVisibility(View.GONE);
    }

    public void onProgressChanged(XWalkView view, int progressInPercent) {
        super.onProgressChanged(view, progressInPercent);
        Log.d("INFO", "Loading Progress:" + progressInPercent);
        mProgress = (ProgressBar) findViewById(R.id.progressBar);
        mProgress.setProgress(progressInPercent);
    }


来源:https://stackoverflow.com/questions/33228274/is-there-a-xwalkview-webviewclient

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!