Есть ли клиент веб-просмотра XWalkView?

Я пытаюсь использовать XWalkView в качестве замены веб-просмотра в своем приложении для Android. Я заметил, что в объекте XWalkView нет метода setWebViewClient. Дело в том, что я хочу проверить, когда страница закончена (onPageFinished) и когда ресурс загружен (onLoadResource). Как это сделать с помощью XWalkView?

Я встраиваю XWalkView с помощью этого руководства

встроить пешеходный переход в Android-студию


person Oscar Yuandinata    schedule 20.10.2015    source источник


Ответы (3)


Cross Walk API вводит собственные имена для каждого компонента. Не только WebView переименовывается в XWalkView, но и WebViewClient имеет аналог с именем XWalkResourceClient, а WebChromeClient - XWalkUIClient. Итак, вместо setWebViewClient вы должны использовать метод setResourceClient и передать ему экземпляр XWalkResourceClient. В этом объекте вы можете реализовать некоторые необходимые методы, например onLoadFinished. Дополнительные сведения см. в документации по API Cross Walk.

person Stan    schedule 30.12.2015

Пример WebViewClient:

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

То же самое, но с использованием версии XWalkView:

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

вы можете использовать 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);
    }
person LF00    schedule 05.01.2017