我正在尝试在我的 android 应用程序中使用XWalkView作为 webview 替代品。我注意到XWalkView对象上没有setWebViewClient
方法。问题是我想检查页面何时完成()以及资源何时加载()。如何使用XWalkView做到这一点?onPageFinished
onLoadResource
我使用本教程嵌入了 XWalkView
我正在尝试在我的 android 应用程序中使用XWalkView作为 webview 替代品。我注意到XWalkView对象上没有setWebViewClient
方法。问题是我想检查页面何时完成()以及资源何时加载()。如何使用XWalkView做到这一点?onPageFinished
onLoadResource
我使用本教程嵌入了 XWalkView
Cross Walk API 为每个组件引入了自己的名称。不仅WebView
被重命名为XWalkView
,而且WebViewClient
其对应的名称也被命名XWalkResourceClient
为WebChromeClient
- XWalkUIClient
。因此,setWebViewClient
您应该使用setResourceClient
方法并将XWalkResourceClient
实例传递给它,而不是使用它。在此对象中,您可以实现一些必需的方法,例如onLoadFinished
. 请查阅Cross Walk API 文档以获取更多详细信息。
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
}
});
你可以使用资源客户端。
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);
}